Anonim

Globālā regulārās izteiksmes izdruka vai tikai grep ir viena no universālākajām un izplatītākajām komandām Unix un Linux sistēmās. Komanda meklē atsevišķus vai vairākus ievades failus un atbilstošās modeļa līnijas. Rezultātā jūs saņemat standarta izvadi ar atbilstošajām līnijām.

Ja nenorādāt failu, grep nolasījumiem izmanto standarta ievadi, un tas, visticamāk, būs citas komandas izeja. Kopumā grep raksturo vienkāršu sintakse neatkarīgi no tā, vai jūs to lietojat ar faila nosaukumu vai bez tā.

Šajā rakstā ir sniegts ātrs grep sintakse pārskats un dažas pamata komandas, kuras varat izmantot ar faila nosaukumu vai bez tā.

Pirms sākat

Visas grep komandas ievēro to pašu sintakse, un katram parametram ir noteikta funkcija. Šeit ir parauga līnija:

grep PATTERN

Jūs varat izmantot vairākas opcijas grep, lai kontrolētu komandas izvadi, un skaitlis sākas ar nulli. PATTERN norāda meklēšanas modeli, kuru vēlaties izmantot. Kas attiecas uz failu, šeit tiek norādīts faila nosaukums vai nosaukumi, bet parametru var iestatīt uz nulli.

Stīgu meklēšana komandu izvadē

Kā norādīts, jums nav jāizmanto īpaši ievades faili. Citas komandas izvadi var izmantot grep, lai iegūtu līnijas, kas precīzi atbilst modelim. To var izmantot, lai noteiktu, kuri procesi sistēmā ir aktīvi. Šī ir komandas parauga sintakse:

$ ps -ef | grep www-data

Saņemtajam izvadam vajadzētu izskatīties apmēram šādi:

www-dati 18247 12675 4 16:00? 00:00:00 php-fpm: baseins www
sakne 18272 17714 0 16:00 pts / 0 00:00:00 grep –krāsa = auto –izslēgt-dir = .bzr –izslēgt-dir = CVS –izslēgt-dir = .git –izslēgt-dir = .hg –izslēgt- dir = .svn www-data
www-dati 31147 12770 0 okt22? 00:05:51 nginx: darbinieka process
www-dati 31148 12770 0 okt22? 00:00:00 nginx: kešatmiņas pārvaldnieka process

Ir veids, kā izslēgt komandrindu, kurai raksturīgi grep procesi. Lai to izdarītu, jums jāizmanto $ ps -ef | grep www-dati | grep -v grep komanda.

Grep vārdu meklēšana

Varat izmantot grep komandas, lai meklētu konkrētus vārdus jūsu sistēmas failos. Faktiski nav nepieciešams ierakstīt visu vārdu. Jūs, piemēram, varat vienkārši izmantot gnu, un komanda izvada visus vārdus, kuros ir šie trīs burti. Komandas sintakse ir:

$ grep gnu / usr / share / vārdi

Pēc komandas izpildes jūsu izvadei vajadzētu izskatīties apmēram šādi:

cygnus
gnu
starpregnums
lgnu9d
lignum
magnum
magnusons
sfagnu
spārnuzgrieznis

No otras puses, jūs varat meklēt tikai šo konkrēto vārdu vai burtu virkni un izslēgt visu pārējo. Lai to izdarītu, sintaksei jāpievieno -w vai –word - regexp . Šajā gadījumā komandas piemērs izskatās šādi - $ grep -w gnu / usr / share / words .

Piezīme. Gramatikas vajadzībām dažu komandu beigās ir pilnīga apstāšanās. Jums nav nepieciešama šī pieturzīme grep. Izslēdziet to, kad kopējat / ielīmējat komandu.

Vai grep reģistrjutība ir jutīga?

Visas grep komandas pēc noklusējuma ir reģistrjutīgas. Tas nozīmē, ka, izmantojot mazos un lielos burtus, pati komanda tiek mainīta. Tomēr komandrindai varat pievienot - i ( - ignore - case ) un ļaut sistēmai meklēt gan lielos, gan mazos burtus.

Piemēram, jūsu ievades komanda var izskatīties šādi: $ grep -i Zebra / usr / share / words . Tas ļauj izvadei atbilst jebkurai lielo un mazo burtu kombinācijai, kad tiek meklēta zebra.

Rindu numuri

Izmantojiet līniju – skaitļa opciju vai vienkārši –n, lai noteiktu līniju skaitu ar virkni, kas atbilst noteiktam meklēšanas modelim. Tā rezultātā jūs saņemat standarta izvadi ar līnijas numuru priekšā.

Precīza komanda var izskatīties šādi: $ grep -n 10000 / etc / services . Pēc izpildes izvade nodrošina visas atbilstības, kuras tā atrod uz 10000 rindām. Apskatiet zemāk esošo paraugu:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

Faili mapēs

Aiz grep komandas faila nosaukuma vietā var ievietot zvaigznīti. Vēlreiz izmantojot gnu kritērijus, komanda izskatās šādi $ grep gnu *, un izvadē ir uzskaitīti faili, kas satur gnu . Ir svarīgi ņemt vērā, ka šāda veida komanda atgriež rindu.

Piezīme. Izmantojot grep, rinda norāda uz rakstzīmju secību, kas darbojas līdz noteiktam pārtraukumam. Ja vien jūs neuzlabojat meklēšanu, izvadē var būt veselas informācijas rindkopas.

Veiciet nākamo soli ar Grepu

Šis ceļvedis tikai nesaskrāpē to, ko jūs varat darīt ar grep. Varētu paiet laiks, lai iegūtu visas izredzes un beigas, bet sintaksē tiek ievērots diezgan vienkāršs princips. Izmantojot kādu praksi, jūs varēsit pilnveidot meklēšanu līdz pilnībai, ar faila nosaukumu vai bez tā.

Kā grep bez faila nosaukuma