Šajā rakstā mēs izskaidrosim grep lietderības izmantošanu ar dažādiem piemēriem. Mēs izmantosim Debian 10, lai izskaidrotu šajā rakstā minētās komandas un metodes.
Grep instalēšana
Grep ir instalēts lielākajā daļā Linux izplatīšanas. Tomēr, ja tas jūsu sistēmā nav, varat to instalēt, izmantojot šādu metodi Terminal:
$ sudo apt-get install grepIzmantojot Grep
Šeit ir grep komandas sintakse. Tas sākas ar grep, kam seko dažas opcijas un meklēšanas kritēriji, un pēc tam beidzas ar faila nosaukumu.
$ grep [opcijas] PATTERN [FILE…]Meklējiet failus
Lai meklētu faila nosaukumu direktorijā, kurā ir noteikta virkne, grep varat izmantot šādi:
$ ls -l | grep -i “virknePiemēram, lai meklētu faila nosaukumu, kurā ir virkne “pārbaude“, Komanda būtu:
$ ls -l | grep -i testsŠajā komandā ir uzskaitīti visi faili, kas satur virkni “pārbaude”.
Meklējiet virkni failā
Lai meklētu virkni konkrētā failā, varat izmantot šādu komandu sintaksi:
$ grep “string” faila nosaukumsPiemēram, lai meklētu virkni “pārbaude”Failā ar nosaukumu testa fails1, mēs izmantojām šādu komandu:
$ grep “darbinieka” testa fails1
Iepriekš minētais rezultāts ir atgriezis teikumu no testa fails1 kurā ir virkne “darbinieks”.
Meklējiet virkni vairākos failos
Lai meklētu virkni vairākos failos, varat izmantot šādu komandu sintaksi:
$ grep “string” faila nosaukums1 faila nosaukums2Piemēram, lai meklētu virkni “darbinieks” divos failos testfile1 un testfile2, mēs izmantojām šādu komandu:
$ grep “darbinieks” testfile1 testfile2
Iepriekš minētajā komandā tiks uzskaitītas visas rindas, kurās ir virkne “darbinieks” gan no failiem testfile1, gan testfile2.
Varat arī izmantot aizstājējzīmi, ja visi failu nosaukumi sākas ar to pašu tekstu.
$ grep “string” faila nosaukums *Piemēram, ja ņemam iepriekš minēto piemēru, kurā bija mūsu failu nosaukumi testfile1 un testfile2 , komanda būtu:
$ grep “darbinieka” testa fails *
Meklējiet virkni failā, ignorējot virknes burtu
Visbiežāk jūs esat saskāries ar to, kad kaut ko meklējat, izmantojot grep, bet nesaņemat rezultātu. Tas notiek tāpēc, ka, meklējot virkni, neatbilstība gadījumiem. Tāpat kā mūsu piemērā, ja kļūdaini izmantojamDarbinieks" tā vietā "darbinieks”, Tā atgriezīsies nulle, jo mūsu failā ir virkne“darbinieks”Ar mazajiem burtiem.
Jūs varat pateikt grep ignorēt meklēšanas virknes gadījumu, pēc grep izmantojot -i karodziņu šādi:
$ grep -i “string” faila nosaukums
Izmantojot karodziņu -i, komanda veiks reģistrjutīgu meklēšanu un atgriezīs visas rindas, kurās ir virkne “darbinieks”Tajā, neņemot vērā burtus, ir lielie vai mazie burti.
Meklēt, izmantojot regulāro izteiksmi
Ja regulārā izteiksme tiek pareizi lietota, tā ir ļoti efektīva grep funkcija. Izmantojot komandu Grep, jūs varat definēt regulāru izteiksmi ar sākuma un beigu atslēgvārdiem. To darot, jums nevajadzēs ierakstīt visu rindu ar komandu grep. Šim nolūkam var izmantot šādu sintaksi.
$ grep “sākuma atslēgvārds.* endKeyword ”faila nosaukumsPiemēram, lai meklētu līniju failā ar nosaukumu testfile1, kas sākas ar virkni “this” un beidzas ar virkni “data”, mēs izmantojām šādu komandu:
$ grep “tas.* dati ”testa fails1
Tas izdrukās visu līniju no testa fails1 satur izteicienu (sākuma atslēgvārds “šis” un beigu atslēgvārds “dati”).
Izdrukājiet noteiktu rindiņu skaitu aiz / pirms meklēšanas virknes
Varat arī parādīt noteiktu rindiņu skaitu failā pirms / pēc virknes spēles kopā ar pašu saskaņoto virkni. Šim nolūkam var izmantot šādu sintaksi:
$ grep -APēc virknes saskaņošanas norādītajā failā, ieskaitot saskaņoto virkni, tas parādīs N rindu skaitu.
Piemēram, šis ir mūsu parauga fails ar nosaukumu testa fails2.
Šī komanda izvadīs saskaņoto līniju, kurā ir virkne “darbinieks”Kopā ar 2 līnijām pēc tā.
$ grep -A 2 -i “darbinieka” testa fails2
Līdzīgi, lai konkrētā failā parādītu N rindu skaitu pirms saskaņotās virknes, izmantojiet šādu sintaksi:
$ grep -BLai konkrētā failā ap virkni parādītu N rindu skaitu, izmantojiet šādu sintaksi:
$ grep -CIzceļot meklēšanu
Grep pēc noklusējuma drukāt saskaņotās līnijas, bet neuzrāda, kura līnijas daļa ir saskaņota. Ja izmantojat opciju -color ar grep, tas parādīs, kur jūsu failā parādās apstrādes virknes. Grep pēc noklusējuma izcelšanai izmantojiet sarkano krāsu.
Šim nolūkam var izmantot šādu sintaksi:
$ grep “string” faila nosaukums - krāsa
Skaita maču skaitu
Ja vēlaties saskaitīt, cik reižu konkrēts vārds parādās konkrētā failā, varat izmantot opciju grep ar -c. Tas atgriež tikai spēļu skaitu, nevis pašu atbilstību. Šim nolūkam var izmantot šādu sintaksi:
$ grep -c “string” faila nosaukumsŠis mūsu faila paraugs izskatās šādi:
Šis ir piemērs komandai, kas atgrieza vārdu reižu skaitu failu parādījās failā ar nosaukumu testa fails3.
Apgriezta meklēšana
Dažreiz jūs vēlaties veikt reverso meklēšanu, kurā tiek parādītas visas rindas, izņemot tās, kas atbilst ievadei. Lai to izdarītu, vienkārši izmantojiet -v karogu, kam seko grep:
$ grep -v “string” faila nosaukumsPiemēram, lai parādītu visas faila rindas testa fails3 kurās nav vārda “konts”, mēs izmantojām šādu komandu:
$ grep -v “konta” testa fails3
Grep izmantošana ar citām komandām
Grep var izmantot arī, lai filtrētu nepieciešamo rezultātu no dažādu komandu izvades. Piemēram, noapt -instalēts saraksts ” komandas izvadi, vēlaties atrast tikai automātiski instalētos pakotnes, rezultātu var filtrēt, izmantojot grep šādi:
$ apt --instalēts saraksts | grep automātisks
Līdzīgi lscpu sniedz detalizētu informāciju par CPU. Ja jūs vienkārši interesē informācija par CPU arhitektūru, varat to filtrēt, izmantojot šādu komandu:
$ lscpu | grep Arhitektūra
Šajā rakstā mēs esam aprakstījuši dažus piemērus, kas palīdzēs izprast grep komandas un to lietošanu dažādos apstākļos. Spēcīga grep komandas saķere var ietaupīt daudz laika, ja jums ir nepieciešams aplūkot lielus konfigurācijas vai žurnālfailus un caur tiem iegūt noderīgu informāciju.