Anonim

Globální tisk regulárních výrazů nebo jen grep je jedním z nejvšestrannějších a nejběžnějších příkazů v systémech Unix a Linux. Příkaz vyhledá jeden nebo více vstupních souborů a odpovídající linie vzorů. Výsledkem je standardní výstup s odpovídajícími řádky.

Pokud neurčíte soubor, použije grep standardní vstup pro odečty a bude to pravděpodobně výstup jiného příkazu. Celkově má ​​grep přímou syntaxi, ať už jej používáte s nebo bez názvu souboru.

Tento článek poskytuje rychlý přehled grep syntaxe a některé základní příkazy, které můžete použít s nebo bez názvu souboru.

Než začneš

Všechny příkazy grep sledují stejnou syntaxi a každý parametr má specifickou funkci. Zde je ukázka řádku:

grep PATTERN

K ovládání výstupu příkazu můžete použít řadu možností v grepu a číslo začíná na nule. PATTERN označuje vzorec vyhledávání, který chcete použít. Pokud jde o SOUBOR, je to místo, kde jde název souboru nebo jména, ale parametr lze nastavit na nulu.

Hledání řetězce v příkazovém výstupu

Jak je uvedeno, nemusíte používat konkrétní vstupní soubory. Výstup jiného příkazu lze použít v grep k získání řádků, které přesně odpovídají vzoru. To lze použít k určení, které procesy jsou v systému aktivní. Toto je ukázková syntaxe příkazu:

$ ps -ef | grep www-data

Výstup, který získáte, by měl vypadat asi takto:

www-data 18247 12675 4 16:00? 00:00:00 php-fpm: pool www
kořen 18272 17714 0 16:00 bodů / 0 00:00:00 grep –color = auto –exclude-dir = .bzr –exclude-dir = CVS –exclude-dir = .git –exclude-dir = .hg – exclude dir = .svn www-data
www-data 31147 12770 0 říjen? 00:05:51 nginx: pracovní proces
www-data 31148 12770 0 říjen? 00:00:00 nginx: proces správce mezipaměti

Existuje způsob, jak vyloučit příkazový řádek, který obsahuje grep procesy. K tomu musíte použít $ ps -ef | grep www-data | příkaz grep -v grep .

Grep Word Search

Příkazy grep můžete použít k hledání konkrétních slov v souborech ve vašem systému. Ve skutečnosti není třeba psát celé slovo. Stačí použít například příkaz gnu a příkaz vydá všechna slova, která v nich mají tato tři písmena. Syntaxe příkazu je:

$ grep gnu / usr / share / words

Po provedení příkazu by měl váš výstup vypadat takto:

cygnus
gnu
interregnum
lgnu9d
lignum
magnum
magnuson
rašeliník
Wingnut

Na druhou stranu můžete hledat pouze konkrétní slovo nebo řetězec písmen a vyloučit vše ostatní. K tomu musíte do syntaxe přidat -w nebo –word - regexp . V tomto případě vypadá vzorový příkaz takto - $ grep -w gnu / usr / share / words .

Poznámka: Pro účely gramatiky mají některé příkazy na konci bodku. Nepotřebujete tu interpunkční znaménko pro grep. Vyloučit při kopírování / vložení příkazu.

Je Grep Case Sensitive?

Všechny příkazy grep jsou ve výchozím nastavení citlivé na velikost písmen. To znamená, že použití malých a velkých písmen znamená rozdíl v samotném příkazu. Můžete však přidat - i ( - ignore - case ) na příkazový řádek a umožnit systému vyhledávat velká i malá slova.

Například váš příkaz vstupu může vypadat takto: $ grep -i Zebra / usr / share / words . Umožňuje výstupu, aby při hledání zebry odpovídal jakékoli kombinaci velkých a malých písmen.

Řádková čísla

Pomocí volby –line-number nebo just -n určete počet řádků s řetězcem, který odpovídá konkrétnímu vzoru vyhledávání. Výsledkem je standardní výstup s číslem řádku před ním.

Přesný příkaz může vypadat takto: $ grep -n 10000 / etc / services . Po provedení poskytuje výstup všechny shody, které najde na 10000 řádcích. Podívejte se na vzorek níže:

10423: ndmp 10 000 / tcp
10424: ndmp 10000 / udp

Soubory ve složkách

Místo názvu souboru můžete za příkaz grep umístit hvězdičku. Při opětovném použití kritérií gnu příkaz vypadá jako tento $ grep gnu * a výstup uvádí soubory, které obsahují gnu . Je důležité si uvědomit, že tento druh příkazu vrací řádek.

Poznámka: V grepu se řádek vztahuje na posloupnost znaků, které běží až po zadanou přestávku. Pokud vyhledávání neupřesníte, výstup může obsahovat celé odstavce informací.

Udělejte další krok s Grepem

Tento průvodce pouze poškrábe povrch toho, co můžete dělat s grepem. Získání všech šancí a konců může chvíli trvat, ale syntaxe se řídí poměrně jednoduchým principem. A s nějakou praxí budete moci upřesnit své hledání k dokonalosti, s nebo bez názvu souboru.

Jak grep bez názvu souboru