Šajā rakstā mēs izskaidrosim grep utilītas 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ījumu. Tomēr, ja tā trūkst jūsu sistēmā, varat to instalēt, izmantojot šādu metodi terminālī:
$sudo apt-get instalēt satvēriens
Izmantojot Grep
Šeit ir komandas grep pamata sintakse. Tas sākas ar grep, kam seko dažas iespējas un meklēšanas kritēriji, un pēc tam beidzas ar faila nosaukumu.
$satvēriens [iespējas]RAKSTURS[FILE ...]
Meklējiet failus
Lai meklētu faila nosaukumu direktorijā, kurā ir noteikta virkne, varat izmantot grep šādā veidā:
$ls -viņi | satvēriens -ivirkne
Piemēram, lai meklētu faila nosaukumu, kurā ir virkne pārbaude , komanda būtu šāda:
$ls-viņi| satvēriens- espārbaudeŠī komanda uzskaita visus failus, kas satur virkni pārbaude .
Meklējiet virkni failā
Lai meklētu virkni noteiktā failā, varat izmantot šādu komandu sintaksi:
$satvēriensvirknes faila nosaukumsPiemēram, lai meklētu virkni pārbaude failā ar nosaukumu testa fails 1 , mēs esam izmantojuši šādu komandu :
$satvēriensdarbinieka pārbaudes fails 1Iepriekš minētais rezultāts ir atgriezis teikumu no testa fails 1 kas satur virkni darbinieks .
Meklējiet virkni vairākos failos
Lai meklētu virkni vairākos failos, varat izmantot šādu komandu sintaksi:
$satvēriensvirkne faila nosaukums1 faila nosaukums2Piemēram, lai meklētu virknes darbinieku divos failos testfile1 un testfile2, mēs esam izmantojuši šādu komandu:
$satvēriensdarbinieks testfile1 testfile2Iepriekš minētā komanda uzskaitīs visas rindas, kurās ir virknes darbinieks no abiem failiem testfile1 un testfile2.
Varat arī izmantot aizstājējzīmi, ja visi failu nosaukumi sākas ar vienu un to pašu tekstu.
$satvēriensvirknes faila nosaukums*Piemēram, ja mēs ņemam iepriekš minēto piemēru, kurā bija mūsu failu nosaukumi testfile1 un testfile2 , komanda būtu šāda:
$satvēriensdarbinieka pārbaudes fails*Meklējiet virkni failā, ignorējot virknes reģistru
Visbiežāk jūs esat saskāries ar to, kad meklējat kaut ko, izmantojot grep, bet nesaņemat izvadi. Tas notiek tāpēc, ka, meklējot virkni, neatbilst gadījums. Tāpat kā mūsu piemērā, ja mēs kļūdaini izmantojam Darbinieks tā vietā darbinieks , tas atgriezīs nulli, jo mūsu failā ir virkne darbinieks ar mazajiem burtiem.
Varat norādīt grep ignorēt meklēšanas virknes gadījumu, izmantojot –i karogu aiz grep, šādi:
$satvēriens–I virknes faila nosaukumsIzmantojot karodziņu –i, komanda veiks meklēšanu bez reģistriem un atgriež visas rindas, kurās ir virkne darbinieks tajā, neņemot vērā, burti ir lielie vai mazie.
Meklējiet, izmantojot regulāro izteiksmi
Pareizi lietojot, regulārā izteiksme ir ļoti efektīva grep funkcija. Izmantojot komandu Grep, jūs varat definēt regulāru izteiksmi ar sākuma un beigu atslēgvārdu. To darot, jums nebūs jāievada visa rinda ar komandu grep. Šim nolūkam var izmantot šādu sintaksi.
$satvērienssākuma atslēgvārds.*endKeyword faila nosaukumsPiemēram, lai meklētu rindu failā ar nosaukumu testfile1, kas sākas ar virkni un beidzas ar virknes datiem, mēs esam izmantojuši šādu komandu:
$satvēriensšo.*datu pārbaudes fails 1Tas izdrukās visu rindu no testa fails 1 kas satur izteiksmi (sākuma atslēgvārds šis un beigu atslēgvārda dati).
Izdrukājiet noteiktu rindu skaitu aiz/pirms meklēšanas virknes
Varat arī parādīt konkrētu rindu skaitu failā pirms/pēc virknes atbilstības kopā ar atbilstošo virkni. Šim nolūkam var izmantot šādu sintaksi:
$satvēriens -TO <N>virknes faila nosaukumsTas parādīs N rindu skaitu pēc tam, kad virkne ir saskaņota norādītajā failā, ieskaitot atbilstošo virkni.
Piemēram, tas ir mūsu parauga fails ar nosaukumu testa fails2 .
Šī komanda izvadīs atbilstošo rindu, kurā ir virkne darbinieks , kopā ar 2 rindām pēc tās.
$satvēriens-TO2–I darbinieka pārbaudes fails2Līdzīgi, lai parādītu N rindu skaitu pirms atbilstošās virknes noteiktā failā, izmantojiet šādu sintaksi:
$satvēriens -B <N>virknes faila nosaukumsLai parādītu N rindu skaitu ap virkni noteiktā failā, izmantojiet šādu sintaksi:
$satvēriens -C <N>virknes faila nosaukumsMeklēšanas izcelšana
Grep pēc noklusējuma drukā atbilstošas līnijas, bet neparāda, kura līnijas daļa ir saskaņota. Ja ar grep izmantojat opciju –color, tas parādīs, kur apstrādes stīgas parādās jūsu failā. Grep pēc noklusējuma izcelšanai izmantojiet sarkano krāsu.
Šim nolūkam var izmantot šādu sintaksi:
$satvēriensvirknes faila nosaukums-krāsaSaspēļu skaita skaitīšana
Ja vēlaties saskaitīt, cik reizes konkrēts vārds parādās konkrētā failā, varat izmantot opciju grep ar –c. Tas atgriež tikai atbilstību skaitu, nevis pašas spēles. Šim nolūkam var izmantot šādu sintaksi:
$satvēriens- c virknes faila nosaukumsMūsu parauga fails izskatās šādi:
Tālāk ir sniegts komandas piemērs, kas atgriezis vārdu skaitu failu parādījās failā ar nosaukumu testa fails3 .
Apgriezta meklēšana
Dažreiz vēlaties veikt apgriezto meklēšanu, kurā tiek parādītas visas rindas, izņemot tās, kas atbilst ievadītajai. Lai to izdarītu, vienkārši izmantojiet karodziņu –v, kam seko grep:
$satvēriens–V virknes faila nosaukumsPiemēram, lai parādītu visas faila rindas testa fails3 kas tajos nesatur vārdu konts, esam izmantojuši šādu komandu:
$satvēriens–V konta pārbaudes fails3Grep izmantošana ar citām komandām
Grep var izmantot arī, lai filtrētu nepieciešamo rezultātu no dažādām komandu izvadām. Piemēram, no apt - instalētais saraksts komandu izvadi, jūs vēlaties atrast tikai automātiski instalētās paketes, jūs varat filtrēt rezultātu, izmantojot grep šādi:
$trāpīgs-instalētasarakstu| satvēriensautomātiska
Tāpat 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| satvēriensArhitektūraŠajā rakstā mēs esam aprakstījuši dažus piemērus, kas palīdzēs jums izprast grep komandas un to izmantošanu dažādos apstākļos. Spēcīga grep komandas satveršana var ietaupīt daudz laika, ja jums ir jāaplūko lieli konfigurācijas vai žurnāla faili un caur tiem jāizvelk noderīga informācija.