Omezení počtu znaků při vyhledávání pomocí grep

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.


Zdroj: stackoverflow.com/…characters-one-line

Vyhledávání ve všech souborech pomocí grep

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‘.