Grep zobrazí řádek, na kterém najde zadaný výsledek. Pokud potřebujete i okolí výsledku, použijte přepínače -B
(before -> pře) a -A
(after -> za).
ls -al | grep -A 3 -B 1 slovo
grep -A 2 -B 2 slovo soubor.txt
Grep zobrazí řádek, na kterém najde zadaný výsledek. Pokud potřebujete i okolí výsledku, použijte přepínače -B
(before -> pře) a -A
(after -> za).
ls -al | grep -A 3 -B 1 slovo
grep -A 2 -B 2 slovo soubor.txt
V jednom z předchozích příspěvků jsem se věnoval základnímu vyhledávání pomocí příkazu grep. Tento příkaz hledá zadaný vzor a pokud jej najde, výsledek vypíše na standardní výstup. Problém může nastat v případě, že nalezený řádek je velmi dlouhý (např. xml soubor na jediném řádku v logu). To se dá vyřešit kombinací příkazu grep s příkazem cut.
grep pattern nazev_souboru | cut -c -80 grep pattern nazev_souboru | cut -c 1-80
Tyto dvě posloupnosti příkazů dávají stejný výsledek. Vrátí první až osmdesátý znak z každé řádky nalezené grepem.
grep pattern nazev_souboru | cut -c 40-100
Vrátí čtyřicátý až stý znak z každého řádku nalezeného grepem.
Pro vyhledávání v souborech se používá program grep což je program příkazové řádky dostupný na UNIX systémech.
grep Ahoj pokus2
Vyhledá slovo ‚Ahoj‘ v souboru pokus2.
grep Ahoj *
Vyhledá slovo ‚Ahoj‘ ve všech souborech v adresáři.
grep -r Ahoj *
Vyhledá slovo ‚Ahoj‘ ve všech souborech v adresáři a podadresářích.
grep -rl Ahoj *
Prohledá všechny soubory v aktuálním adresáři a podadresářích a vypšíše jména souborů, které obsahují slovo ‚Ahoj‘.