Příkaz 'grep' znamená 'globální regulární výraz tisk' . Příkaz grep filtruje obsah souboru, což usnadňuje naše vyhledávání.
Jedná se o nástroj příkazového řádku pro hledání řádků ve skupinách dat ve formátu prostého textu, které jsou stejné jako regulární výraz. Název 'rukojeť' pochází z příkazu, tj. ed, který obsahuje stejný účinek. Původně byl grep navržen pro operační systém Unix, ale později se stal dostupným pro všechny systémy podobné Unixu a pro několik dalších, jako je OS 9.
Filtr grep najde soubor pro konkrétní vzor znaků a zobrazí každý řádek, který tento vzor obsahuje. Znaky by měly být v uvozovkách, pokud se vyskytují v parametru vzor se speciálním významem pro shell. Obvykle musíme celý vzor uzavřít do jedné uvozovky, pokud parametr vzoru není společný řetězec.
Ve výrazu jako [a-z] popisuje znaménko mínus (-) cml rozsah založený na aktuálním pořadí řazení. Pořadí řazení může specifikovat ekvivalentní třídy v rozsahu znaků pro použití. Příkaz grep předpokládá stdin, pokud nejsou zmíněny žádné soubory.
Vzor se nazývá regulární výraz, který se nachází uvnitř souboru. Vzorem jsou omezené regulární výrazy ve formátu příkazu egrep nebo ed. Příkaz grep aplikuje pevný nedeterministický algoritmus. Hodí se, když potřebujeme filtrovat velké soubory protokolu.
smyčka for ve skriptu shellu
Stručná historie grep
Než byl grep pojmenován, byl důvěrný nástroj specifikovaný společností Ken Thompson najít soubory pro několik vzorů. Neznámý o jeho existenci, Doug Mcllroy požádal Thompsona, aby takovou funkci specifikoval. Odpověděl, že by přes noc myslel na takový nástroj. Thompson vylepšoval a opravoval bažiny po dobu asi jedné hodiny ve svém programu známém jako 's' (nebo hledat). Následující den předložil funkci Mcllroyovi, který řekl, že je to stejné, jak chtěl. Thompsonův popis může popisovat přesvědčení, že příkaz grep byl specifikován přes noc.
Thompson specifikoval počáteční verzi v jazyce symbolických instrukcí PDP-11 pro podporu Lee E. McMohan kontrola textu Federalist Papers, aby se rozhodlo o autorství jednotlivých novin. Textový editor ed měl podporu pro regulární výraz, ale nemohl být použit na tak velký text; Thompson zkopíroval tento kód do samostatného nástroje. Vybral jméno kvůli v ed; příkaz grep vytiskne každý řádek stejně jako popsaný vzor. Nejprve byl ve verzi 4 Unix přidán grep s tím, že „obecně se uvádí jako prototypový softwarový nástroj“ , Mcllroy schválil grep s 'neodvolatelně zakořeněný' filozofie nástrojů Thompson v Unixu.
Implementace grep
Řada implementací grep je přítomna v několika prostředích pro vývoj softwaru a operačních systémech. Rané verze zahrnovaly fgrep a egrep, představené ve verzi 7 Unixu. Verze egrep podporuje syntaxi pro rozšířený regulární výraz, který Alfred Aho zahrnul po původní implementaci regulárního výrazu Kena Thompsona. Verze fgrep najde jakýkoli pevný seznam řetězců pomocí Algoritmus porovnávání řetězců Aho-Corasick . Tyto binární soubory verzí jsou dostupné v moderních systémech, připojují se ke grep nebo volají grep skript shellu pomocí správného příznaku přidaného, když jsou obecně nasazeny na systémech POSIX.
Mezi další příkazy patří 'rukojeť' slovo k reprezentaci hledají nástroje, obvykle ty, které závisí na shodách regulárních výrazů. Například užitečnost, tj. 'pgrep' , ukazuje procesy, jejichž názvy jsou stejné jako zadaný regulární výraz.
- Grep je název vestavěné funkce, která vyhledává prvky v seznamu, které baví určitou vlastnost v Perl programovací jazyk.
- Obvykle se nazývá tato funkce vyššího řádu 'filtr' nebo 'kde' v jiném jazyce.
- Příkaz, tj. pcregrep , je implementace grep, která využívá syntaxi pro regulární výraz Perl. Stejnou funkčnost lze přidat do verze grep GNU pomocí parametru -P.
- Také porty grep (např GnuWin32 a Cygwin ) spustit v systému Microsoft Windows. Několik verzí systému Windows poskytuje stejný příkaz findstr nebo qgrep.
- Příkaz grep je také součástí nástrojů MSX-DOS2 nástroje ASCII pro verzi 2 MSX-DOS.
- Příkazy fgrep, egrep a grep byly dodány do operačního systému IBM i.
Software Adobe InDesign má funkce GREP (od edice CS3) v dialogovém okně změnit/najít GREP a specifikovat pomocí CS4 v 'GREP styly' styly odstavců.
Jak nainstalovat grep v Linuxu?
Grep je předinstalovaný téměř v každé distribuci Linuxu. V případě, že jej však můžeme nainstalovat pomocí níže uvedeného příkazu v okně terminálu, pokud v našem systému chybí:
$ sudo apt-get install grep
grep s trubkou
Příkaz 'grep' se obecně používá s roura (|) .
Syntax:
command | grep
Příklad:
cat marks.txt | grep 9
Podívejte se na výše uvedený snímek, příkaz grep filtruje všechna data obsahující '9'.
grep bez potrubí
Lze použít i bez potrubí.
Syntax:
grep
Příklad:
grep 9 marks.txt
Podívejte se na výše uvedený snímek, příkaz grep provede stejnou práci jako předchozí příklad, ale bez potrubí.
možnosti grep
Syntax:
grep -v
Příklad:
grep -v 9 marks.txt
Podívejte se na výše uvedený snímek, příkaz 'grep -v 9 marks.txt' zobrazí řádky, které neobsahují naše hledané slovo '9'.
Syntax:
grep -i
Příklad:
grep -i red exm.txt
Podívejte se na výše uvedený snímek, příkaz 'grep -i red exm.txt' zobrazí všechny řádky obsahující 'červenou', ať už jsou velká nebo malá písmena.
grep -Příkaz se používá k zobrazení řádek za výsledkem .
Příkaz grep -B se používá k zobrazení řádek před výsledkem .
Příkaz grep -C se používá k zobrazení řádek za a řádek před výsledek.
Pro zobrazení libovolného počtu řádků můžete použít (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....).
Syntax:
grep -A grep -B grep -C
Příklad:
je vztah
grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt
Podívejte se na výše uvedený snímek, příkaz 'grep -A1 yellow exm.txt' zobrazí hledaný řádek s dalším následujícím řádkem, příkaz 'grep -B1 yellow exm.txt' zobrazí hledaný řádek s jedním předchozím řádkem a příkazem 'grep -C1 yellow exm.txt' zobrazí hledaný řádek s jedním předcházejícím a následujícím řádkem.