Да, имя команды не очень интуитивно, это аббревиатура от “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 |