grep: Поиск Строк в Файлах

Да, имя команды не очень интуитивно, это аббревиатура от “General Regular Expression Parser”((“общий синтаксический анализатор регулярных выражений”). Использование этой команды просто: поиск образца, заданного как параметр в одном или более файлах. Ее синтаксис:

grep [опции] <Образец> [один или более файл(ов)]

Если упомянуто несколько файлов, то их названия будут предшествовать каждой строке соответствия, отображенной в результате. Чтобы предотвратить вывод этих имен, используйте опцию -h, также, для получения только имен файлов используйте опцию -l . Образец - это регулярное выражение, хотя в большинстве случаев это просто слово. Наиболее часто используемые опции:

Вот примеры использования:

$ cat my_father
Hello dad
Hi daddy
So long dad

# Найти строки, содержащие "hi", не обращая внимание на регистр
$ grep -i hi my_father
Hi daddy

# Найти "dad" как целое слово и вывести номер строки перед найденным результатом
$ grep -nw dad my_father
1:Hello dad
3:So long dad

# Найти все строки, которые НЕ начинаются на "H"
$ grep -v "^H" my_father
So long dad
$

Если вы желаете использовать grep в канале, вы не должны указывать имя файла, в этом случае данные берутся из стандартного ввода. Результат выводится в стандартный вывод, поэтому вы можете смело передавать выход grep другим программам. Например:

$ cat /usr/share/doc/HOWTO/Parallel-Processing-HOWTO | \
  grep -n thread | less