logo

„Grep“ komanda „Linux“ / „Unix“ su pavyzdžiais

Komanda „grep“ reiškia 'globalus reguliariųjų posakių spausdinimas' . grep komanda filtruoja failo turinį, todėl paieška tampa lengva.

Tai yra komandų eilutės įrankis, skirtas paprasto teksto duomenų grupėse ieškoti eilučių, kurios yra tokios pačios kaip reguliarioji išraiška. Pavadinimas 'suėmimas' ateina iš komandos, ty ed, kuri turi tą patį efektą. Iš pradžių grep buvo sukurta Unix operacinei sistemai, tačiau vėliau tapo prieinama kiekvienai į Unix panašiai sistemai ir kelioms kitoms, tokioms kaip OS 9.

nepasirašytas int c programavimas

Grep filtras suranda konkretaus simbolių šablono failą ir parodo kiekvieną eilutę, kurioje yra tas raštas. Simboliai turi būti rašomi kabutėse, jei jie yra šablono parametre su specialia apvalkalo reikšme. Paprastai visą šabloną turime įtraukti į vieną kabutę, jei modelio parametras nėra įprasta eilutė.

Tokioje išraiškoje kaip [a-z] minuso ženklas (-) cml apibūdina diapazoną, pagrįstą dabartine lyginimo tvarka. Lyginimo tvarka gali nurodyti lygiavertes klases simbolių diapazonuose. Komanda grep prisiima stdin, kai nepaminėti jokie failai.

Šablonas vadinamas reguliariąja išraiška, kuri yra failo viduje. Šablonas yra apribotos reguliarios išraiškos komandos egrep arba ed formatu. Komanda grep taiko tvirtą nedeterministinį algoritmą. Tai naudinga, kai reikia filtruoti didelius žurnalo failus.

Trumpa grep istorija

Prieš jį pavadinant grep buvo konfidenciali programa, kurią nurodė Kenas Thompsonas norėdami rasti kelių šablonų failus. Nežinoma apie jo egzistavimą, Dougas Mcllroy'us paprašė Thompsono nurodyti tokią funkciją. Atsakydamas, kad per naktį jis pagalvos apie tokią paslaugą. Thompsonas savo programoje, žinomoje kaip, maždaug vieną valandą tobulino ir taisė pelkes 's' (arba ieškoti). Kitą dieną jis pristatė funkciją Mcllroy'ui, kuris pasakė, kad tai yra tokia pati, kokios jis norėjo. Thompsono pasakojimas gali apibūdinti įsitikinimą, kad grep komanda buvo nurodyta per naktį.

Thompson nurodė, kad pradinė versija būtų palaikoma PDP-11 surinkimo kalba Lee E. McMohanas patikrinti federalistinių dokumentų tekstą, kad būtų nuspręsta dėl atskiro dokumento autorystės. Redagavimo teksto rengyklė palaikė reguliarųjį posakį, bet negalėjo būti naudojama tokiam dideliam tekstui; Thompsonas nukopijavo šį kodą į atskirą įrankį. Jis pasirinko pavadinimą, dėl kurio ed; komanda grep spausdintų kiekvieną eilutę taip pat, kaip aprašytas šablonas. Pirma, grep buvo pridėtas 4 versijoje Unix, sakydamas, kad „jis paprastai minimas kaip prototipinis programinės įrangos įrankis“ , Mcllroy patvirtino grep su „neatšaukiamai įsišaknijęs“ Thompson įrankių filosofija Unix.

grep įgyvendinimai

Keliose programinės įrangos kūrimo aplinkose ir operacinėse sistemose yra įvairių grep diegimų. Ankstyvosiose versijose buvo fgrep ir egrep, pristatyti 7 Unix versijoje. Egrep versija palaiko išplėstinės reguliariosios išraiškos sintaksę, kurią įtraukė Alfredas Aho po originalaus Ken Thompson reguliariosios išraiškos įgyvendinimo. Fgrep versija suranda bet kokį fiksuotų eilučių sąrašą su Aho-Corasick eilučių atitikimo algoritmas . Šios versijos dvejetainiai failai yra prieinami šiuolaikinėse sistemose, jungiantis prie grep arba iškviečiant grep apvalkalo scenarijų, naudojant tinkamą vėliavėlę, pridėtą, o paprastai diegiamos POSIX sistemose.

Kitos komandos apima 'suėmimas' Jie randa įrankius, dažniausiai tuos, kurie priklauso nuo reguliariųjų reiškinių atitikčių. Pavyzdžiui, naudingumas, t.y. 'pgrep' , rodo procesus, kurių pavadinimai yra tokie patys kaip pateiktos reguliariosios išraiškos.

  • Grep yra įtaisytosios funkcijos, kuri ieško elementų sąraše, kurie linksmina tam tikrą savybę Perl programavimo kalba.
  • Paprastai ši aukštesnės eilės funkcija vadinama 'filtras' arba 'kur' kita kalba.
  • Komanda, t.y. pcregrep , yra grep diegimas, kuriame naudojama reguliariosios Perl išraiškos sintaksė. Tą pačią funkciją galima pridėti prie grep GNU versijos naudojant -P vėliavėlę.
  • Taip pat grep prievadai (pvz., in GnuWin32 ir Cygwin ) vykdyti „Microsoft Windows“. Kai kuriose „Windows“ versijose yra ta pati findstr arba qgrep komanda.
  • Be to, komanda grep yra ASCII MSX-DOS2 įrankių, skirtų 2 MSX-DOS versijai, dalis.
  • Fgrep, egrep ir grep komandos buvo išsiųstos į IBM i OS.
    „Adobe InDesign“ programinė įranga turi GREP funkcijas (nuo CS3 leidimo) skirtuko „GREP“ keitimo/rasti dialogo lange ir nurodyta naudojant CS4 „GREP stiliai“ pastraipų stiliai.

Kaip įdiegti grep Linux?

Grep yra iš anksto įdiegtas beveik kiekviename „Linux“ paskirstyme. Tačiau tuo atveju, jei jos nėra mūsų sistemoje, galime ją įdiegti naudodami toliau pateiktą komandą terminalo lange:

 $ sudo apt-get install grep 

grep su vamzdžiu

Komanda „grep“ paprastai naudojama su vamzdžiu (|) .

Sintaksė:

 command | grep 

Pavyzdys:

 cat marks.txt | grep 9 

Linux Grep filtrai1

Pažiūrėkite į aukščiau pateiktą momentinį vaizdą, komanda grep filtruoja visus duomenis, kuriuose yra „9“.

grep be vamzdžio

Galima naudoti ir be vamzdžio.

Sintaksė:

 grep 

Pavyzdys:

 grep 9 marks.txt 

Linux Grep filtrai2

Pažvelkite į aukščiau pateiktą momentinį vaizdą, grep komanda atlikite tą patį darbą kaip ir ankstesniame pavyzdyje, bet be vamzdžio.

grep parinktys

    grep -vM: komanda grep -v rodo eilutes, kurios neatitinka nurodyto žodžio.

    Sintaksė:

     grep -v 

    Pavyzdys:

     grep -v 9 marks.txt 

    Linux Grep filtrai3

    Pažiūrėkite į aukščiau pateiktą momentinę nuotrauką, komandą „grep -v 9 marks.txt“ rodomos eilutės, kuriose nėra mūsų paieškos žodžio „9“.

    grep -i: komanda „grep -i“ filtruoja išvestį neskiriant didžiųjų ir mažųjų raidžių.

    Sintaksė:

     grep -i 

    Pavyzdys:

     grep -i red exm.txt 

    Linux Grep filtrai4

    Pažiūrėkite į aukščiau pateiktą momentinę nuotrauką, komandą „grep -i red exm.txt“ rodomos visos eilutės, kuriose yra „raudona“ didžiosiomis arba mažosiomis raidėmis.

    grep -A/ grep -B/ grep -C

    grep - Komanda naudojama rodyti eilutė po rezultato .

    grep -B komanda naudojama rodyti eilutė prieš rezultatą .

    grep -C komanda naudojama rodyti eilutė po ir eilutė prieš rezultatas.

    Galite naudoti (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....), kad būtų rodomas bet koks eilučių skaičius.

    Sintaksė:

     grep -A grep -B grep -C 

    Pavyzdys:

    kaip atidaryti failą su java
     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Linux Grep filtrai5

    Pažiūrėkite į aukščiau pateiktą momentinę nuotrauką, komandą „grep -A1 geltonas exm.txt“ rodo ieškomą eilutę su kita sekančia eilute, komanda „grep -B1 geltonas exm.txt“ rodo ieškomą eilutę su viena prieš tai esančia eilute ir komanda „grep -C1 geltonas exm.txt“ rodo ieškomą eilutę su viena prieš tai sekančia eilute.