Grep ir plaši izmantots Linux sistēmās, strādājot pie dažiem failiem, meklējot noteiktu modeli un daudz ko citu. Šoreiz mēs izmantojam komandu grep, lai parādītu rindas pirms un pēc atbilstošā atslēgvārda, kas izmantots kādā konkrētā failā. Šim nolūkam visā mācību pamācībā izmantosim karodziņu “-A”, “-B” un “-C”. Tātad, lai labāk izprastu, jums jāveic katrs solis. Pārliecinieties, vai jums ir Ubuntu 20.04 Linux sistēma ir instalēta.
Pirmkārt, jums jāatver Linux komandrindas terminālis, lai sāktu strādāt ar grep. Jūs pašlaik atrodaties savas Ubuntu sistēmas mājas direktorijā tūlīt pēc komandrindas termināļa atvēršanas. Tātad, mēģiniet uzskaitīt visus failus un mapes Linux sistēmas mājas direktorijā, izmantojot zemāk esošo komandu ls, un jūs saņemsiet visus. Jūs varat redzēt, ka mums ir daži teksta faili un dažas mapes.
ls
01. piemērs: “-A” un “-B” izmantošana
No iepriekš parādītajiem teksta failiem mēs apskatīsim dažus no tiem un mēģināsim uz tiem piemērot komandu grep. Atvērsim teksta failu “one.txt ”, vispirms izmantojot populāro komandu“ cat ”, kā norādīts zemāk:
$ kaķis viens.txt
Vispirms mēs šajā teksta failā redzēsim dažus konkrētus vārdus, izmantojot komandu grep, kā norādīts zemāk. Mēs meklējam vārdu “mēs” teksta failā “viens.txt ”, izmantojot grep instrukciju. Izvadā ir redzamas divas teksta faila rindas, kurās ir “mēs”.
$ grep mēs viens.txt
Tātad šajā piemērā dažos teksta failos parādīsim rindas pirms un pēc konkrētā vārda atbilstības. Tātad, izmantojot to pašu teksta failu “viens.txt ”mēs esam saskaņojuši vārdu“ mēs ”, parādot 3 rindiņas pirms tā, kā parādīts zemāk. Karogs “-B” nozīmē “Pirms”. Izvade parāda tikai 2 rindas pirms konkrētās vārda rindas, jo failā nav vairāk rindiņu pirms konkrētā vārda rindas. Tas arī parāda šīs rindas, kurās ir šis konkrētais vārds.
$ grep -B 3 mēs viens.txt
Izmantosim to pašu atslēgvārdu “mēs” no šī faila, lai parādītu 3 rindas aiz rindas, kurās ir vārds “mēs”. Karogs “-A” uzrāda “Pēc”. Izejā atkal tiek rādītas tikai 2 rindas, jo failā nav vairāk rindiņu.
$ grep -A 3 mēs viens.txt
Izmantosim jaunu atslēgvārdu, kas jāsaskaņo, un parādīsim līnijas vai rindas pirms un pēc tās līnijas, kurā tas atrodas. Tāpēc mēs izmantojām vārdu “var”, lai to saskaņotu. Rindu numuri šajā gadījumā ir vienādi. 3 rindas pēc saskaņotā vārda “var” ir parādītas zemāk, izmantojot komandu grep.
$ grep -A 3 var viens.txt
Jūs varat redzēt, kā izvade tiek parādīta pirms atbilstoša vārda rindām, izmantojot atslēgvārdu “var”. Turpretī tas parāda tikai divas rindas pirms saskaņotā vārda līnijas, jo pirms tās vairs nav nevienas rindas.
$ grep -B 3 var vienu.txt
02. piemērs: '-A' un '-B' izmantošana
Paņemsim vēl vienu teksta failu “divi.txt ”no mājas direktorija un parādiet tā saturu, izmantojot zemāk esošo komandu“ cat ”.
$ kaķis divi.txt
Parādīsim 5 rindiņas pirms vārda “Most” no faila “two.txt ”, izmantojot komandu grep. Rezultātā tiek rādītas 5 rindas, pirms rindā ir noteikts vārds.
$ grep -B 5 Lielākā daļa divu.txt
Grep komanda parāda 5 rindiņas aiz vārda “Most” no teksta faila “two.txt ”.
$ grep -A 5 Lielākā daļa divu.txt
Mainīsim meklējamo atslēgvārdu. Mēs izmantosim “of” kā atslēgvārdu, kas šoreiz tiks saskaņots. Parādiet 2 rindas pirms vārda “of” no teksta faila “two.txt ”var izdarīt, izmantojot zemāk esošo komandu grep. Rezultātā atslēgvārdam “of” ir divas rindas, jo tas failā ir divreiz. Tādējādi izvadā ir vairāk nekā 2 rindas.
$ grep -B 2 no diviem.txt
Tagad tiek parādītas 2 faila rindiņas “two.txt ”aiz rindas, kurā ir atslēgvārds“ of ”, var izdarīt, izmantojot zemāk esošo komandu. Izejā atkal tiek parādītas vairāk nekā 2 rindas.
$ grep -A 2 no diviem.txt
03. piemērs: '-C' izmantošana
Cits karodziņš “-C” ir izmantots, lai parādītu līnijas pirms un pēc saskaņotā vārda. Parādīsim faila saturu “viens.txt ”, izmantojot komandu cat.
$ kaķis viens.txt
Mēs izvēlamies “sabiedrība” kā atbilstošu atslēgvārdu. Zemāk esošajā komandā grep tiks parādītas 2 rindas pirms un 2 rindas pēc līnijas, kurā ir vārds “sabiedrība”. Rezultātā tiek parādīta viena rinda pirms konkrētās vārda rindas un 2 rindas pēc tās.
$ grep -C 2 sabiedrības viens.txt
Apskatīsim faila “divi.txt ”, izmantojot zemāk esošo komandu cat.
$ kaķis divi.txt
Šajā ilustrācijā mēs izmantojam “dzejoļus” kā atbilstošu atslēgvārdu. Tātad, izpildiet šo komandu. Izvade parāda divas rindas pirms un divas rindas pēc saskaņotā vārda.
$ grep -C 2 dzejoļi divi.txt
Izmantosim vēl vienu atslēgvārdu no faila “divi.txt ”, kas jāsaskaņo. Mēs šoreiz patērējam “dabu” kā atslēgvārdu. Tātad, mēģiniet izmantot zemāk esošo komandu, vienlaikus izmantojot “-C” kā karodziņu ar atslēgvārdu “daba” no faila “divi.txt ”. Šoreiz izvadei ir vairāk nekā divas rindas. Tā kā failā vārds “daba” ir vairāk nekā vienu reizi, tas ir tā iemesls. Atslēgvārdam “daba” ir divas rindas pirms un divas rindas aiz tā. Kamēr otrais atbilst vienam un tam pašam atslēgvārdam, “dabai” ir divas rindas pirms tā, taču aiz tā nav rindu, jo tas atrodas faila pēdējā rindā.
$ grep -C 2 dzejoļi divi.txt
Secinājums
Mēs veiksmīgi parādām rindas pirms un pēc konkrētā vārda, vienlaikus izmantojot grep instrukciju.