grep
a globális keresés a reguláris kifejezésért és a kinyomtatás rövidítése . Ez egy parancssori eszköz, amelyet UNIX és Linux rendszerekben használnak egy megadott minta keresésére egy fájlban vagy fájlcsoportban.
grep
rengeteg opcióval rendelkezik, amelyek lehetővé teszik számunkra, hogy különféle kereséssel kapcsolatos műveleteket hajtsunk végre a fájlokon. Ebben a cikkben megvizsgáljuk, hogyan lehet használni grep
a rendelkezésre álló opciókat, valamint az alapvető reguláris kifejezéseket a fájlok kereséséhez.
Hogyan kell használni grep
Bármely opció átadása nélkül grep
használható mintázat keresésére egy fájlban vagy fájlcsoportban. A szintaxis a következő:
grep ''
Ne feledje, hogy egy vagy kettős idézőjelre van szükség a szöveg körül, ha egynél több szó van.
A helyettesítő karakterrel (*) is kiválaszthatja a könyvtár összes fájlját.
Ennek az az eredménye, hogy a minta (a megtalált vonallal) megjelenik a fájl (ok) ban. Ha nincs egyezés, nem nyomtat kimenetet a terminálra.
Tegyük fel például, hogy a következő fájlok vannak (grep.txt néven):
Hello, how are you I am grep Nice to meet you
A következő grep
parancs megkeresi a „te” szó minden előfordulását:
grep you grep.txt
Ennek eredménye:
Hello, how are you Nice to meet you
you
várhatóan más színű lesz, mint a másik szöveg, hogy könnyen azonosítsa a keresett elemeket.
De grep
további opciókkal rendelkezik, amelyek segítenek többet elérni a keresési művelet során. Nézzünk meg közülük kilencet, miközben alkalmazzuk őket a fenti példára.
A grep
1. -n
(--sorszám) - sorszámok felsorolása
Ez kinyomtatja a szöveg egyezését a sorszámokkal együtt. Ha megnézi a fenti eredményt, akkor észreveszi, hogy nincsenek sorszámok, csak a mérkőzések vannak.
grep you grep.txt -n
Eredmény:
1: Hello, how are you 3: Nice to meet you
2. -c
(--szám) - kinyomtatja az egyezések sorainak számát
grep you grep.txt -c
Eredmény:
2
Ne feledje, hogy ha az első sorban volt egy másik „te”, akkor az opció -c
továbbra is a 2-et nyomtatja ki. Ez azért van, mert nem az egyezések száma, hanem a sorok száma, ahol a mérkőzések megjelennek.
3. -v
(--invert-match) - kinyomtatja azokat a vonalakat, amelyek nem felelnek meg a megadott mintának
grep you grep.txt -v -n
Eredmény:
2. I am grep
Figyelje meg, hogy mi is használtuk az opciót -n
? Igen, egy parancsban több opció is alkalmazható.
4. -i
(--ignore-case) - használt esetben érzéketlenség
# command 1 grep You grep.txt # command 2 grep YoU grep.txt -i
Eredmények:
# result 1 # no result # result 2 Hello, how are you Nice to meet you
5. -l
(--files-with-match) - kinyomtatja a mintának megfelelő fájlneveket
# command 1 grep you grep.txt -l # command 2 grep You grep.txt -i -l
Eredmények:
# result 1 grep.txt # result 2 # all files in the current directory that matches # the text 'You' case insensitively
#### 6. `-w` (--word-regexp) - print matches of the whole word
Alapértelmezés szerint grep
egyezik a megadott mintát tartalmazó karakterláncokkal. Ez azt jelenti, hogy grep yo grep.txt
ugyanazokat az eredményeket fogja kinyomtatni, mint grep yo grep.txt
azért , mert a 'yo' megtalálható benned. Hasonlóképpen, „ou”.
Ha az opció -w
, grep
biztosítja, hogy a mérkőzések pontosan ugyanazt a mintát meghatározott. Példa:
grep yo grep.txt -w
Eredmény:
Nincs eredmény!
7. -o
(--only-matching) - csak az egyező mintát nyomtassa ki
Alapértelmezés szerint azt grep
a sort nyomtatja ki, ahol az egyező minta található. Opció -o
esetén csak az egyező mintát nyomtatják soronként. Példa:
grep yo grep.txt -o
Eredmény:
yo
8. -A
( -B
--a-context után ) és (--before-context) - nyomtassa ki a vonalakat az illesztett minta után és előtte (illetve)
grep grep grep.txt -A 1 -B 1
Eredmény:
Hello, how are you I am grep Nice to meet you
Ez az egyeztetett minta a 2. vonalon található. -A 1
Egy vonalat jelent a kiegyenlített vonal után, és -B 1
egy vonalat a kiegyenlített vonal előtt.
Van egy -C
(--context) opció, amely egyenlő -A
+ -gal -B
. Az érték átadott -C
fognak használni -A
és -B
.
9. -R
(--dereference-rekurzív) - rekurzív keresés
Alapértelmezés szerint grep
nem kereshet könyvtárakban. Ha megpróbálja ezt megtenni, hibaüzenetet kap ("Van egy könyvtár"). Az opcióval -R
lehetővé válik a fájlok keresése a könyvtárakban és az alkönyvtárakban. Példa:
grep you .
Eredmény:
# 'you' matches in a folders # and files starting from the # current directory
Szabályos kifejezések a mintákhoz
grep
alapszabályos kifejezéseket is megengedi a minták megadásához. Közülük kettő:
1. ^pattern
- egy sor kezdete
Ez a minta azt jelenti, hogy az grep
akarat meg fog egyezni azokkal a karakterláncokkal, amelyek sorai az után megadott karakterlánccal kezdődnek ^
. Példa:
grep ^I grep.txt -n
Eredmény:
2: I
2. pattern$
- egy sor vége
Ezzel szemben ^
, $
meghatározza, hogy mintákat illeszkedik, ha a sor végén a húr előtt $
. Példa:
grep you$ grep.txt
Eredmény:
1: Hello, how are you 3: Nice to meet you
Tekerje be
grep
egy hatékony eszköz fájlok keresésére a terminálon. A használatának megértése lehetővé teszi a fájlok egyszerű megkeresését a terminálon keresztül.
További lehetőségek vannak ehhez az eszközhöz csatolva. Megtalálhatja man grep
.