Někdy se uživatelé setkávají s potřebou vyhledávat určité informace ve všech souborech. Konfigurační dokumenty nebo jiná volumetrická data často obsahují velký počet řádků, takže není možné ručně vyhledat potřebná data. Pak jeden z vestavěných příkazů pro operační systémy Linux přijde na záchranu, která vám umožní najít linky během několika sekund.
Obsah
Pokud jde o rozdíly mezi distribucemi Linuxu, v tomto případě nehrají žádnou roli, protože příkaz grep, který vás zajímá, je ve většině sestav standardně k dispozici a používá se přesně stejným způsobem. Dnes bychom rádi diskutovali nejen o efektu grep , ale také o hlavních argumentech, které mohou výrazně zjednodušit vyhledávací proceduru.
Viz také: Hledáte soubory v Linuxu
Všechny další akce budou prováděny prostřednictvím standardní konzoly, také vám umožní otevírat soubory pouze zadáním úplné cesty k nim, nebo pokud je terminál spuštěn z požadovaného adresáře. Můžete zjistit rodičovskou složku souboru a přejít na ni v konzole takto:




cd /home/user/folder , kde uživatel je uživatelské jméno a složka je název složky. 
Pokud chcete zobrazit celý obsah, použijte příkaz cat + название файла . Podrobné pokyny k práci s tímto týmem naleznete v našem dalším článku na níže uvedeném odkazu.

Další podrobnosti: Příklady příkazů pro Linux
Díky výše uvedeným krokům můžete použít grep , který je v pravém adresáři, aniž byste určili úplnou cestu k souboru.
Než začneme uvažovat o všech dostupných argumentech, je důležité poznamenat obvyklé vyhledávání podle obsahu. Bude to užitečné v těch chvílích, kdy potřebujete najít jednoduchou shodu podle hodnoty a zobrazit všechny příslušné řádky.
grep word testfile , kde slovo je informace, kterou hledáte, a testfile je název souboru. Při hledání mimo složku určete úplnou cestu jako v /home/user/folder/filename . Po zadání příkazu stiskněte klávesu Enter . 

grep -i "word" testfile . 

Někdy uživatelé musí najít nejen přesné shody v řádcích, ale také zjistit informace, které po nich následují, například při hlášení konkrétní chyby. Správným řešením je pak použít atributy. Zadejte grep -A3 "word" testfile v konzole, aby zahrnoval následující tři řádky ve výsledku po zápase. Můžete psát -A4 , pak budou zachyceny čtyři řádky, neexistují žádná omezení.

Pokud namísto -A použijete argument -B + количество строк , výsledkem jsou data, která jsou až do bodu vstupu.

Argument -С , zase zachycuje řádky kolem klíčového slova.

Níže naleznete příklady přiřazení zadaných argumentů. Vezměte prosím na vědomí, že musíte vzít v úvahu případ a uvést dvojité uvozovky.
grep -B3 "word" testfile
grep -C3 "word" testfile
Potřeba definovat klíčové slovo, které je na začátku nebo na konci řádku, se nejčastěji vyskytuje během práce s konfiguračními soubory, kde každý řádek je zodpovědný za jeden parametr. Chcete-li vidět přesný záznam na začátku, musíte zaregistrovat grep "^word" testfile soubor grep "^word" testfile . Za použití této volby odpovídá pouze znak ^ .

Hledání obsahu na konci řádků se děje přibližně stejným způsobem, pouze v uvozovkách byste měli přidat znak $ a příkaz bude vypadat takto: grep "word$" testfile .

Při hledání požadovaných hodnot nemá uživatel vždy informace o přesném slově přítomném v řetězci. Pak lze vyhledávací proceduru provést pomocí čísel, což někdy úkol značně zjednodušuje. Je nutné použít příkaz ve formě grep "[0-7]" testfile , kde "[0-7]" je rozsah hodnot a testfile je název souboru, který má být skenován.

Skenování všech objektů ve stejné složce se nazývá rekurzivní. Uživatel musí použít pouze jeden argument, který analyzuje všechny soubory ve složce a zobrazí příslušné řádky a jejich umístění. Budete muset zadat grep -r "word" /home/user/folder , kde / home / user / folder je cesta k adresáři pro skenování.

Modrá zobrazí umístění pro ukládání souborů, a pokud chcete získat řádky bez těchto informací, přiřaďte další argument, aby příkaz získal tuto grep -h -r "word" + путь к папке .

Na začátku článku jsme již hovořili o obvyklém hledání slov. S touto metodou se však ve výsledcích zobrazí další kombinace. Naleznete například slovo Uživatel , ale příkaz bude také zobrazovat Uživatel 123 , Uživatel hesla a další zápasy, pokud nějaké existují. Chcete-li se tomuto výsledku vyhnout, přiřaďte argument -w ( grep -w "word" + имя файла или его расположение ).

Tato volba je také provedena, když potřebujete vyhledat několik přesných klíčových slov najednou. V tomto případě zadejte egrep -w 'word1|word2' testifile . Vezměte prosím na vědomí, že v tomto případě je písmeno gr přidáno do grepu a jsou uvedeny jednotlivé uvozovky.

Uvažovaný nástroj je schopen nejen najít slova v souborech, ale také zobrazit řádky, ve kterých není žádná hodnota specifikovaná uživatelem. Pak před vložením hodnoty klíče a souboru -v přidá -v . Díky ní, když aktivujete příkaz, uvidíte pouze relevantní data.

Syntaxe grepu shromáždila několik dalších argumentů, které lze stručně vysvětlit:
-I - zobrazí pouze názvy souborů, které odpovídají kritériím vyhledávání; -s - zakáže oznámení o zjištěných chybách; -n - zobrazí číslo řádku v souboru; -b - zobrazí číslo bloku před řádkem. Nic vám nebrání v používání více argumentů pro jedno zjištění, stačí je zadat odděleně mezerou, nezapomeňte vzít v úvahu případ.
Dnes jsme důkladně rozebrali příkaz grep , který je k dispozici v distribucích Linuxu. Je to jeden ze standardů a často se používá. O dalších populárních nástrojích a jejich syntaxi si můžete přečíst v našem samostatném materiálu na následujícím odkazu.