Úvod
grep je zkratka pro „global regular expression print“ a je to užitečný příkaz v Linuxu.
Příkaz grep se používá k odfiltrování vstupních souborů, které odpovídají regulárnímu výrazu, a poté k tisku na standardní výstup. A je také velmi důležité vyloučit slova a vzory nebo slovníky a soubory.
Níže je uveden návod, jak vyloučit v grep, jak si projdeme níže.
Vyloučit slova a vzory
Chcete-li zobrazit řádky, které neodpovídají vzoru vyhledávání, použijte -v možnost.
Nyní mám soubor s názvem fn.txt., který obsahuje následující obsah:
Například chci vyloučit řádek, který obsahuje slovo funkce:
$ grep -v function fn.txt
Výstup:
Jak vidíte, řádek obsahující slovo funkce je odfiltrován.
pokud řetězec, který chcete hledat, obsahuje mezeru, musíte použít závorky nebo uvozovky.
Například chci vyloučit řádek, který obsahuje řetězec ab cd:
$ grep -v 'ab cd' fn.txt
Výstup:
pokud chcete zadat více řetězců najednou, použijte -e možnost.
Například chci vyloučit limit a abcd řetězec:
$ grep -v -e limit -e abcd fn.txt
Výstup:
Pokud chcete vyloučit pouze slova, která se zobrazují na začátku řádku. Chci například vyloučit slovo funkce, které se objevuje na začátku řádku
$ grep -v '^function' fn.txt
Výstup:
Protože se slovo funkce objevuje na konci řádku, nebude vyloučeno.
Vyloučit adresáře a soubory
Chcete-li vyloučit adresář, který jste zadali, použijte –exclude-dir s -R nebo -r volba. -R bude následovat všechny symbolické odkazy. To je také největší rozdíl mezi -r a -R možnosti.
Chci například vyloučit soubory, které obsahují řetězec cat uvnitř /home/ubuntu adresář:
$ grep -R --exclude-dir=ubuntu cat /home
Výstup:
Červená část je odfiltrována.
Chcete-li vyloučit více adresářů najednou, vložte adresáře do složených závorek a oddělte je čárkami bez mezer.
Například chci vyloučit soubory, které obsahují řetězec Linux uvnitř ubuntu a jídlo adresář:
$ grep -r --exclude-dir={ubtuntu,food} linux /
Výstup:
Červená část je odfiltrována.
Závěr
Už jste si prošli podrobnosti o tom, jak vyloučit v grep.
Děkuji za přečtení.