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.
