Поиск текста с использованием grep

grep — утилита для поиска указанного текста в файлах, именах файлов и т.д. из командной строки.

Можно искать используя grep даже например в результатах выполнения какой-то команды:

КОМАНДА | grep ТЕКСТ

Можно посчитать количество строк где встречается указанный текст:

grep -c TEXT FILENAME
grep TEXT FILENAME | wc -l
grep -o 'TEXT' FILENAME | uniq -c

Для поиска и отображения строк с указанным текстом выполним:

grep ТЕКСТ ФАЙЛ

Полнотекстовый поиск — Поиск текста во всех фалах указанной директории:

grep TEXT /dir/*
grep -r TEXT /dir/*
grep -rnw '/dir/' -e 'TEXT'

Полнотекстовый поиск — Поиск текста во всех фалах указанной директории (-F указывает что должно быть точное соответствие тексту, иначе например вместо «test.ixnfo.com» будет находить также «test@ixnfo.com» и т.д.):

grep -Fr TEXT /dir/*

Искать только целое указанное слово:

grep -w СЛОВО ФАЙЛ

Отобразить строки где встречаются указанные слова:

grep -E "(СЛОВО|СЛОВО|СЛОВО)" ФАЙЛ

Отобразить строки где указанные слова встречаются несколько раз:

grep -E "(СЛОВО|СЛОВО).*\1"

Отобразить также строки после искомой, например 5 строк:

grep -A 5 СЛОВО ФАЙЛ

Или строки перед искомой:

grep -B 5 СЛОВО ФАЙЛ

Показать строки где встречается СЛОВО1,СЛОВО2,СЛОВО3:

grep СЛОВО[1-3] ФАЙЛ

Показать все строки где встречается IP-адрес:

grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" ФАЙЛ

Показать строки где встречаются заглавные буквы:

grep "[[:upper:]]" ФАЙЛ

Показать строки где встречается указанное слово с табуляцией по обе стороны:

grep "[[:blank:]]СЛОВО[[:blank:]]" ФАЙЛ
grep " СЛОВО " ФАЙЛ

Найти и заменить текст на другой можно командой:

grep 'текст_который_ищем' -P -R -I -l  * | xargs sed -i 's/текст_который_ищем/текст_на_который_заменяем/g'

Опишу некоторые опции запуска:
-b (отображение номера блока в котором был найден фрагмент, блоки нумеруются с 0)
-c (отображение только количества строк в которых был найден фрагмент)
-r (искать также в подкаталогах)
-n (отображает номер строки)
-h (скрывает имена файлов перед найденными фрагментами, когда поиск выполняется по нескольким файлам)
-l (отображение только имен файлов где встречается фрагмент)
-i (игнорирование регистра символов, то есть большие и маленькие буквы равны при поиске)
-s (скрывает сообщения о несуществующих или недоступных файлах)
-v (отображает все строки кроме указанного образца)

Оставьте комментарий

Добавить комментарий