Примеры использования Grep
Смотрим конфиги без комментариев
или еще проще!$ grep ^[^#] filename
Фильтр по списку слов
Отфильтровать строки без учёта регистра, содержащие одно из слов one, two, three:
Рекурсивно с номером строки
Найти по папкам данное слово и вывести номер строки и путь до файла:
Рекурсивный поиск шаблона в группе файлов
grep -R /way/to/any/folder/ foo
grep foo `ls -R /way/to/any/folder/text.file`
grep foo `find /way/to/any/folder/ -name "text.file"`
for file in /way/to/some/folder/text*.file; do grep foo $file; done
Убрать пустые строки в файле
Убрать все строки, что содержат ‘ba’
Фильтрация по строкам внешнего файла
Убрать из файла file.txt все строки, содержащиеся в файле not.wanted
Применяем фильтр:
Grep из потока ввода
Найти вхождение числа 6 в потоке ввода и вывести его вместе с 2 строками до и одной строкой после
aGrep
Все варианты использования grep к ключами “-e” “-X” имеют “тяжелый” синтаксис.
Удобнее использовать утилиту agrep.
Реализация условия OR (ИЛИ):
# netstat -tulpn | agrep '1527|2181|8081|8082|8083|8091'
tcp6 0 0 127.0.0.1:1527 :::* LISTEN 22890/java
tcp6 0 0 :::8091 :::* LISTEN 22894/java
tcp6 0 0 :::2181 :::* LISTEN 22889/java
tcp6 0 0 :::8081 :::* LISTEN 22890/java
tcp6 0 0 :::8082 :::* LISTEN 22891/java
tcp6 0 0 :::8083 :::* LISTEN 22893/java
Есть ограничение на длину списка параметров. В данном примере у меня отработало только 6 4-х разрядных числовых значения.
Реализация условия AND (И):
netstat -tulpn | agrep 'java;80'
tcp 0 0 127.0.0.1:8087 0.0.0.0:* LISTEN 1787/java
tcp6 0 0 :::8091 :::* LISTEN 22894/java
tcp6 0 0 127.0.0.1:32814 :::* LISTEN 3180/java
tcp6 0 0 :::8080 :::* LISTEN 2030/java
tcp6 0 0 :::8081 :::* LISTEN 22890/java
tcp6 0 0 :::8082 :::* LISTEN 22891/java
tcp6 0 0 :::8083 :::* LISTEN 22893/java
Дополнительные источники: