Už ste použili grep? Väčšinu práce dokáže väčšinou základný grep trik. Grep však ponúka veľa spôsobov, ako vykonať vyhľadávanie a doladiť výstup do použiteľnejšej verzie. V tomto článku sa pozrime na použitie príkazu grep.
Grep použitie
Overovanie existencie
Ak používate akýkoľvek druh distribúcie Linuxu, máte už nainštalovaný grep. Spustite nasledujúci príkaz v termináli.
grep - verzia
Tento príkaz sa používa na zobrazenie verzie aktuálne nainštalovaného grep. Teraz potrebujeme ukážkový súbor. V mojom prípade vygenerujem textový súbor, ktorý obsahuje všetky nainštalované balíčky v mojom systéme.
Základy
Základné použitie grepu má nasledujúcu štruktúru.
grepAlebo pre ľahšie pochopenie použite tento.
grepV takom prípade grep vykoná vyhľadávanie v súbore a vytlačí všetky riadky, ktoré obsahujú vzor (hľadaný výraz).
grep python ~ / Desktop / PackageList.TXT
Grep prehľadal súbor „PackageList.txt “Generoval som skôr a vytlačil všetky riadky, ktoré obsahujú„ python “.
Rovnakú operáciu je možné vykonať aj iným spôsobom. Skontrolujte nasledujúci príklad.
cat ~ / Desktop / PackageList.txt | grep python
Tu som pomocou príkazu „cat“ poslal obsah súboru „PackageList.txt “na grep. Pomocou výstupu cat vykonal grep vyhľadávanie a vytlačil riadky, ktoré obsahujú hľadaný výraz.
Teraz prichádza zábavná vec. Môžete doslova skladať viac príkazov grep presne tak.
cat ~ / Desktop / PackageList.txt | grep - | grep p | grep python
Prvý grep filtruje až po riadky so spojovníkom, druhý filter až po riadky s p a posledný grep filtruje až po riadky s pythonom. Dáva zmysel?
Rozlišovanie malých a veľkých písmen
Pri vyhľadávaní je hlavnou otázkou rozlišovanie malých a veľkých písmen. V predvolenom nastavení grep rozlišuje veľké a malé písmená.
Napríklad hľadanie výrazu „Python“ nezobrazí žiadny výsledok.
cat ~ / Desktop / PackageList.txt | grep Python
Ak chcete, aby grep nerozlišoval malé a veľké písmená, pridajte nasledujúcu možnosť.
cat ~ / Desktop / PackageList.txt | grep -i Python
Vyhľadávanie súborov
Povedzme, že máte adresár s početnými textovými súbormi. Vaším cieľom je identifikovať súbory, ktoré obsahujú alebo neobsahujú vzor (hľadaný výraz).
Považujem túto metódu za veľmi užitočnú pri hľadaní v hromade súborov denníka. Pretože nemám čas otvárať a kontrolovať každý jeden súbor manuálne, musím urobiť grep, aby vykonal prácu za mňa.
Na výpis súborov obsahujúcich zhodu použite príznak „-l“.
grep -l
Ako naznačuje výsledok, výraz „python“ je prítomný vo všetkých 3 súboroch nachádzajúcich sa v adresári „Desktop“.
Ak chcete zobraziť zoznam súborov bez akejkoľvek zhody, použite príznak „-L“.
grep -L
"Žiadna zhoda.txt “je jediný súbor, ktorý neobsahuje výraz„ python “.
Obrátené vyhľadávanie
Predvolené správanie grepu je tlačiť iba riadky so zhodným vzorom vpravo? Je čas obrátiť postup. Tentokrát budeme tlačiť iba riadky BEZ zodpovedajúceho vzoru.
Stačí odovzdať voľbu „-v“ na grep.
cat ~ / Desktop / PackageList.txt | grep -i -v Python
Tlač liniek pred / po zápase
V predvolenom nastavení grep vytlačí iba riadok, ktorý zodpovedá vzoru vyhľadávania. Pomocou tejto techniky môžete povedať, že grep má tlačiť riadky aj pred / po zápase.
Na tlač riadkov pred zápasom použite nasledujúcu štruktúru.
grep -B
5 je riadok čísla, ktorý grep vytlačí PRED zodpovedajúcim riadkom.
Na tlač riadkov po zhode použite nasledujúci.
grep -A
Čo tak tlačiť pred aj za zhodným riadkom? V takom prípade použite príznak „-C“.
grep -C
Poradové číslo
Keď grep zobrazuje výstup, neuvádza číslo riadku. Pre príslušné číslo (čísla) riadku použite príznak „-n“.
grep -n
Jedno slovo
Ak sa použije príznak „-w“, grep bude so vzorom zaobchádzať ako s celým slovom.
grep -w
Obmedzenie vyhľadávania grep
Grep umožňuje určiť počet riadkov, ktoré sa majú v súbore vyhľadať. Táto metóda je užitočná, ak pracujete s veľkým súborom (napríklad so systémovým protokolom). Použite príznak „-m“.
grep -m
Rekurzívne vyhľadávanie
Je to jedna z najužitočnejších funkcií, ktoré grep ponúka pre ťažké použitie. Grep môže rekurzívne prehľadávať adresár a nájsť všetky zhody zo všetkých súborov, ktorým čelí.
grep -RAlebo,
grep -r
Často nachádzam použitie tejto rekurzívnej funkcie spolu s príznakom „-l“.
Tichý režim
Grep je možné spustiť v „tichom“ režime. Keď beží v „tichom“ režime, grep nevytlačí do terminálu žiadny výstup. Namiesto toho vráti 0 (aspoň bola nájdená zhoda) alebo 1 (žiadna zhoda nebola nájdená).
grep -qecho $?
Regulárny výraz
Grep tiež umožňuje vyhľadávanie pomocou regulárneho výrazu (regulárny výraz). To dodáva úplne novú úroveň zložitosti a použiteľnosti grepu ako vyhľadávacieho nástroja.
Napríklad môžete použiť zátvorky na vyhľadanie výrazov „príliš“ aj „dva“ súčasne.
mačka ~ / Desktop / gpl-3.0.txt | grep t [wo] o
Tento nasledujúci príklad vytlačí riadok, iba ak dôjde k zhode na samom začiatku riadku.
grep ^ GNU ~ / Desktop / gpl-3.0.TXT
Čo sa týka zhody konca, použite tento.
pozdravím vás $ ~ / Desktop / gpl-3.0.TXT
Ak chcete použiť Perl regulárny výraz, použite príznak „-P“. Bude sa správať k vzoru ako k regulárnemu výrazu Perl.
grep -PZáverečné myšlienky
Spoločnosť Grep ponúka množstvo spôsobov, ako prispôsobiť funkciu vyhľadávania. Dostupnosť regexu odomyká úplne nový horizont možného použitia grepu. Super je, že môžete použiť všeobecný aj Perl regulárny výraz; podľa toho, s čím sa budete cítiť pohodlne.
Najpodrobnejšie vysvetlenie nájdete vždy na manuálovej stránke.
muž grep
Na zdravie!