Grep Command Tutorial - Fájl keresése Linux és Unix rendszerekben rekurzív kereséssel

grepa 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.

greprengeteg 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 grepa 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 grephaszná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ő grepparancs 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 greptová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ó -ctová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 grepegyezik a megadott mintát tartalmazó karakterláncokkal. Ez azt jelenti, hogy grep yo grep.txtugyanazokat az eredményeket fogja kinyomtatni, mint grep yo grep.txtazért , mert a 'yo' megtalálható benned. Hasonlóképpen, „ou”.

Ha az opció -w, grepbiztosí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 grepa sort nyomtatja ki, ahol az egyező minta található. Opció -oeseté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 1Egy vonalat jelent a kiegyenlített vonal után, és -B 1egy vonalat a kiegyenlített vonal előtt.

Van egy -C(--context) opció, amely egyenlő -A+ -gal -B. Az érték átadott -Cfognak használni -Aés -B.

9. -R(--dereference-rekurzív) - rekurzív keresés

Alapértelmezés szerint grepnem kereshet könyvtárakban. Ha megpróbálja ezt megtenni, hibaüzenetet kap ("Van egy könyvtár"). Az opcióval -Rlehető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

grepalapszabá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 grepakarat 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

grepegy 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.