logo

Grep komanda Linux/Unix ar piemēriem

Komanda 'grep' apzīmē 'globālās regulārās izteiksmes drukāšana' . komanda grep filtrē faila saturu, kas atvieglo meklēšanu.

Tā ir komandrindas utilīta, lai vienkārša teksta datu grupās meklētu rindas, kas ir tādas pašas kā regulāra izteiksme. Vārds 'saķere' nāk no komandas, t.i., ed, kas satur tādu pašu efektu. Sākotnēji grep tika izstrādāts operētājsistēmai Unix, taču vēlāk tas kļuva pieejams visām Unix līdzīgām sistēmām un dažām citām, piemēram, OS 9.

Grep filtrs atrod failu konkrētam rakstzīmju rakstam un parāda katru rindiņu, kurā ir ietverts šis raksts. Rakstzīmes ir jāraksta pēdiņās, ja tās atrodas raksta parametrā ar īpašu nozīmi čaulā. Parasti viss raksts ir jāiekļauj vienā pēdiņās, ja modeļa parametrs nav kopēja virkne.

np.sum

Izteiksmē, piemēram, [a-z], mīnusa zīme (-) cml apraksta diapazonu, pamatojoties uz pašreizējo salīdzināšanas secību. Salīdzināšanas rīkojumā var norādīt līdzvērtīgas klases lietošanai rakstzīmju diapazonos. Komanda grep pieņem stdin, ja nav minēts neviens fails.

Šo modeli sauc par regulāro izteiksmi, kas atrodas failā. Modelis ir ierobežotas regulāras izteiksmes komandas egrep vai ed formātā. Komanda grep izmanto stabilu nedeterministisku algoritmu. Tas noder, ja nepieciešams filtrēt lielus žurnālfailus.

Īsa grep vēsture

Pirms tam tika piešķirts nosaukums, grep bija konfidenciāla utilīta, ko norādījis Kens Tompsons lai atrastu failus vairākiem modeļiem. Par tās esamību nav zināms, Dags Maklrojs lūdza Tompsonu norādīt šādu funkciju. Atbildot, ka viņš vienas nakts laikā padomās par šādu utilītu. Tompsons veica uzlabojumus un laboja purvus aptuveni vienu stundu savā programmā, kas pazīstama kā 's' (vai meklēt). Nākamajā dienā viņš iepazīstināja ar funkciju Mcllroy, kurš teica, ka tas ir tāds pats, kā viņš gribēja. Tompsona stāsts var aprakstīt pārliecību, ka grep komanda tika noteikta vienas nakts laikā.

Thompson norādīja sākotnējo versiju PDP-11 montāžas valodā, lai atbalstītu Lī E. Makmohans pārbaudot Federalist Papers tekstu, lai izlemtu atsevišķa dokumenta autorību. ed teksta redaktoram bija regulāras izteiksmes atbalsts, taču to nevarēja izmantot tik lielam tekstam; Thompson nokopēja šo kodu atsevišķā rīkā. Viņš izvēlējās vārdu, kas saistīts ar ed; komanda grep drukātu katru rindiņu tāpat kā aprakstītajā paraugā. Pirmkārt, grep tika pievienots Unix 4. versijā, sakot, ka 'tas parasti tiek minēts kā prototipisks programmatūras rīks' , Mcllroy apstiprināja grep ar 'neatgriezeniski iesakņojies' Thompson rīku filozofija operētājsistēmā Unix.

Grep realizācijas

Vairākās programmatūras izstrādes vidēs un operētājsistēmās ir pieejamas dažādas grep ieviešanas iespējas. Agrīnās versijas ietvēra fgrep un egrep, kas tika ieviesti Unix 7 versijā. Egrep versija atbalsta paplašinātas regulārās izteiksmes sintaksi, ko iekļāvis Alfrēds Aho pēc Kena Tompsona sākotnējās regulārās izteiksmes ieviešanas. Fgrep versija atrod jebkuru fiksētu virkņu sarakstu ar Aho-Corasick virkņu saskaņošanas algoritms . Šīs versijas binārie faili ir pieejami mūsdienu sistēmās, veidojot savienojumu ar grep vai izsaucot grep čaulas skriptu, izmantojot pareizo pievienoto karogu, bet parasti tiek izvietoti POSIX sistēmās.

Citas komandas ietver 'saķere' viņi meklē rīkus, kas parasti ir atkarīgi no regulārās izteiksmes atbilstības. Piemēram, lietderība, t.i., 'pgrep' , parāda procesus, kuru nosaukumi ir tādi paši kā nodrošinātā regulārā izteiksme.

  • Grep ir nosaukums iebūvētajai funkcijai, kas sarakstā meklē elementus, kas izklaidē noteiktu rekvizītu Perl programmēšanas valoda.
  • Parasti šo augstākas kārtas funkciju sauc 'filtrs' vai 'kur' citā valodā.
  • Komanda, t.i., pcregrep , ir grep implementācija, kas izmanto Perl regulārās izteiksmes sintaksi. To pašu funkcionalitāti var pievienot grep GNU versijai, izmantojot karogu -P.
  • Arī grep porti (piem., in GnuWin32 un Cygwin ) izpildīt operētājsistēmā Microsoft Windows. Dažas Windows versijas nodrošina to pašu findstr vai qgrep komandu.
  • Turklāt komanda grep ir daļa no ASCII MSX-DOS2 rīkiem MSX-DOS 2 versijai.
  • Komandas fgrep, egrep un grep ir nosūtītas uz IBM i OS.
    Programmatūrai Adobe InDesign ir GREP funkcijas (kopš CS3 izdevuma) dialoglodziņā Mainīt/atrast 'GREP' un norādītas, izmantojot CS4. 'GREP stili' rindkopu stili.

Kā instalēt grep operētājsistēmā Linux?

Grep ir iepriekš instalēts gandrīz katrā Linux izplatīšanā. Tomēr, ja mēs varam to instalēt ar tālāk norādīto komandu termināļa logā, ja tās trūkst mūsu sistēmā:

 $ sudo apt-get install grep 

grep ar cauruli

kas ir direktoriju iesniegšana

Komanda 'grep' parasti tiek izmantota ar cauruli (|) .

Sintakse:

 command | grep 

Piemērs:

 cat marks.txt | grep 9 

Linux Grep filtri1

Apskatiet iepriekš redzamo momentuzņēmumu, komanda grep filtrē visus datus, kas satur '9'.

grep bez caurules

To var izmantot arī bez caurules.

Sintakse:

 grep 

Piemērs:

 grep 9 marks.txt 

Linux Grep filtri2

Apskatiet iepriekš redzamo momentuzņēmumu, grep komanda veic to pašu darbu kā iepriekšējā piemērā, bet bez caurules.

grep opcijas

    grep -vM: komanda 'grep -v' parāda rindas, kas neatbilst norādītajam vārdam.

    Sintakse:

     grep -v 

    Piemērs:

     grep -v 9 marks.txt 

    Linux Grep filtri3

    Apskatiet iepriekš redzamo momentuzņēmumu, komandu 'grep -v 9 marks.txt' parāda rindas, kurās nav mūsu meklēšanas vārda '9'.

    grep -i: komanda 'grep -i' filtrē izvadi bez reģistrjutīga veida.

    Sintakse:

     grep -i 

    Piemērs:

     grep -i red exm.txt 

    Linux Grep filtri4

    Apskatiet iepriekš redzamo momentuzņēmumu, komandu 'grep -i sarkans exm.txt' parāda visas rindiņas, kurās ir “sarkans” gan ar lielajiem, gan mazajiem burtiem.

    grep -A/ grep -B/ grep -C

    grep - komanda tiek izmantota, lai parādītu rinda pēc rezultāta .

    grep -B komanda tiek izmantota, lai parādītu rinda pirms rezultāta .

    Komanda grep -C tiek izmantota, lai parādītu rinda pēc un rinda pirms rezultāts.

    Varat izmantot (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....), lai parādītu jebkādu rindu skaitu.

    Sintakse:

    python ierakstiet json failā
     grep -A grep -B grep -C 

    Piemērs:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Linux Grep filtri5

    Apskatiet iepriekš redzamo momentuzņēmumu, komandu 'grep -A1 dzeltens exm.txt' parāda meklēto rindu ar nākamo nākamo rindiņu, komandu 'grep -B1 dzeltens exm.txt' parāda meklēto rindu ar vienu iepriekšēju rindiņu un komandu 'grep -C1 dzeltens exm.txt' parāda meklēto rindu ar vienu iepriekšējo un nākamo rindiņu.