12 užitečné příklady příkazu Linux grep

V tomto článku vám poskytneme užitečné příklady příkazu grep Linux včetně dvou variant programů: egrep a fgrep. grep (globální regulární výraz) se používá k hledání textových řetězců a regulárních výrazů řádek po řádku, které odpovídají zadanému vzoru v rámci jednoho nebo více souborů.

Níže jsou uvedeny některé jednoduché a užitečné příklady použití příkazu grep na Linuxu a hledání řetězce v jednom / více souborech.

Vyhledávejte řádky obsahující 'DB_USER' v konfiguračním souboru WordPress (wp-config.php):

# grep 'DB_USER' wp-config.php definuje ('DB_USER', 'wpuser');

Vyhledejte všechny soubory PHP obsahující text 'str_replace' uvnitř adresáře wp-admin instalace WordPress:

# "grep" str_replace "admin * .php admin-ajax.php: add_action ('wp_ajax_'. $ _GET ['action'], 'wp_ajax_' ]), 1); admin-ajax.php: add_action ('wp_ajax_'. $ _POST ['akce'], 'wp_ajax_'. str_replace ('-', '_', $ _POST ['akce']), 1); admin-header.php: $ admin_body_class. = 'pobočka'. str_replace (pole ('.', ','), '-', floatval ($ wp_version)); admin-header.php: $ admin_body_class. = 'verze-'. str_replace ('.', '-', preg_replace ('/ ^([.0-9]+).*/', '$ 1', $ wp_version)); admin-hlavička.php: $ admin_body_class. = 'locale-'. sanitize_html_class (strtolower (str_replace ('_', '-', get_locale ())));

Chcete-li do výsledků vyhledávání přidat čísla řádků, použijte následující příkaz:

# grep -n "str_replace" admin * .php admin-ajax.php: 73: add_action (' 'akce']), 1); admin-ajax.php: 76: add_action ('wp_ajax_'. $ _POST ['akční'], 'wp_ajax_' str_replace ('-', '_', $ _POST ['akce']), 1); admin-header.php: 157: $ admin_body_class. = 'větve-'. str_replace (pole ('.', ','), '-', floatval ($ wp_version)); admin-header.php: 158: $ admin_body_class. = 'verze-'. str_replace ('.', '-', preg_replace ('/ ^([.0-9]+).*/', '$ 1', $ wp_version)); admin-header.php: 160: $ admin_body_class. = 'locale-'. sanitize_html_class (strtolower (str_replace ('_', '-', get_locale ())));

Vyhledejte všechny soubory ve formátu PHP, jejichž obsah obsahuje text 'str_replace', který má buď kapitál nebo malé písmena, umístěné v adresáři 'wp-admin' rekurzivně (tj. Číst všechny soubory pod každým adresářem) a seznam pouze názvy souborů:

# grep -ril "str_replace" admin * .php admin-admin.php admin-header.php

grep příkaz se často používá v potrubí Unix / Linux s dalšími příkazy. Níže jsou uvedeny některé pokročilejší příklady použití příkazu grep na Linuxu:

Vyhledávejte řádky obsahující 'eval' ve všech PHP souborech umístěných v aktuálním adresáři:

#find. -name '* .php' -exec grep -l 'eval' {}; ./wp-admin/includes/image.php ./wp-admin/includes/class-wp-upgrader.php ./wp-admin/includes/class-pclzip.php ./wp-admin/includes/media.php ./wp-admin/includes/update-core.php ./wp-admin/includes/ajax-actions.php ./wp-admin/includes/class-wp-automatic-updater.php ./wp-admin/includes /class-wp-posts-list-table.php ./wp-admin/user-edit.php ./wp-admin/edit-tag-form.php

Seznam všech procesů Apache:

# ps aux | grep http root 1259 0.0 0.0 114644 984 0 01 37 0 00 1471 0.0 2.3 502008 24508 27 0 03? SX Jun31256 0.0: 3.8 / usr / sbin / httpd -k spustit nikdo 510140 40412 00 00 0? S 01: 31257 0.0: 4.2 / usr / sbin / httpd -k start nikdo 510220 44404 00 00 0? S 02: 31258 0.0: 4.5 / usr / sbin / httpd -k start nikdo 511156 47924 00 00 0? S 02: 31259 0.0: 5.4 / usr / sbin / httpd -k start nikdo 514240 56648 00 00 0? S 02: 31260 0.0: 3.9 / usr / sbin / httpd -k start nikdo 510388 41668 00 00 0? S 01: 31585 0.0: 4.2 / usr / sbin / httpd -k start nikdo 511156 44188 00 13 0? S 01: XNUMX XNUMX: XNUMX / usr / sbin / httpd -k start

Zjistěte, které zásuvky patří ID procesu 31585:

# lsof -p 31585 | grep -Ei 'cwd | unix | ponožka' httpd 31585 nikdo cwd DIR 144,142 4096 35120509 / httpd 31585 nikdo MEM REG 8,18 38427466 /opt/cpanel/ea-php56/root/usr/lib64/php/modules/sockets.so (cesta dev = 144,142) httpd 31585 nikdo MEM REG 8,18 36064050 /usr/lib64/apache2/modules/mod_unixd.so (cesta dev = 144,142)

Zobrazte celkový počet připojení Apache na portu 80:

# netstat -an | grep: 80 | wc -l 1627

Odstraňte všechny zmrazené zprávy ve frontě Exim mail okamžitě:

#exim -bpr | grep zmrazené | awk {'tisk $ 3'} xargs exim -Mrm zpráva 1dPhFh-0000t6-D0 byl odstraněn Zpráva 1dPenR-0000Ls-S8 byla odstraněna Zpráva 1dPexx-0000OD-A6 byla odstraněna

Najděte soubory obsahující textový vzorec (např. Hello):

najít. -iname "* .txt" -exec grep -l "ahoj" {} +

Chcete-li najednou vyhledat více vzorků, můžete jednoduše použít příkaz egrep. egrep je stejný jako grep -E.

#egrep 'cachedir | vyloučit' /etc/yum.conf cachedir = / var / cache / yum / $ basearch / $ releasever exclude = lm_sensors *

Fgrep vyhledá soubor nebo seznam souborů pro pevný vzorový řetězec. fgrep je stejný jako grep -F.

#fgrep 'cachedir' /etc/yum.conf cache = / var / cache / yum / $ basearch / $ releasever

Zdroj

Napsat komentář