Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
grep [2015/04/29 14:34] – внешнее изменение 127.0.0.1grep [2017/02/16 04:36] (текущий) – [Примеры] mirocow
Строка 1: Строка 1:
 +{{tag>chell bash console grep egrep}}
 +
 ====== Поиск текста по фрагменту из текста. (grep/egrep) ====== ====== Поиск текста по фрагменту из текста. (grep/egrep) ======
  
 ===== Примеры ===== ===== Примеры =====
  
- +  $ grep --color=always -C 2 -R "My search text" ./ 
-  grep --color=always -C 2 -R "with-layout" ./ +  $ grep -B 3 -A 5 -i "My search text" 
 +  $ cat /etc/squid3/squid.conf | grep "^[^#;]" 
 +   
 +==== Без комментариев ==== 
 +   
 +  $ cat /etc/squid3/squid.conf | grep "^[^#;]"
 ===== Описание ===== ===== Описание =====
- 
  
 Легендарная команда grep может служить практически для любых целей. Я ее люблю применять не только для поиска нужных файлов в каталоге исходного текста. С помощью grep также можно задавать поиск по регулярным выражениям. Легендарная команда grep может служить практически для любых целей. Я ее люблю применять не только для поиска нужных файлов в каталоге исходного текста. С помощью grep также можно задавать поиск по регулярным выражениям.
Строка 13: Строка 18:
 grep 'шаблон поиска' файл_в_котором_искать grep 'шаблон поиска' файл_в_котором_искать
 Пример: Пример:
 +
   grep -R 'text' /   grep -R 'text' /
 +  
 -команда будет рекурсивно искать во всех текстовых файлах системы слово text. -команда будет рекурсивно искать во всех текстовых файлах системы слово text.
 Grep имеет внушительное количество опций которые могут довольно часто понадобиться: Grep имеет внушительное количество опций которые могут довольно часто понадобиться:
 +
   $ grep --help   $ grep --help
 +  
 Использование: grep [КЛЮЧ]... ШАБЛОН [ФАЙЛ]... Использование: grep [КЛЮЧ]... ШАБЛОН [ФАЙЛ]...
 Поиск ШАБЛОНА в каждом ФАЙЛЕ или в стандартном вводе. Поиск ШАБЛОНА в каждом ФАЙЛЕ или в стандартном вводе.
Строка 22: Строка 31:
 Пример: grep -i 'hello world' menu.h main.c  Пример: grep -i 'hello world' menu.h main.c 
  
-Выбор типа регулярного выражения и его интерпретация:+==== Выбор типа регулярного выражения и его интерпретация: ==== 
   * -E, --extended-regexp ШАБЛОН - расширенное регулярное выражение (ERE)   * -E, --extended-regexp ШАБЛОН - расширенное регулярное выражение (ERE)
   * -F, --fixed-regexp ШАБЛОН - строки фиксированной длины, разделённые символом новой строки    * -F, --fixed-regexp ШАБЛОН - строки фиксированной длины, разделённые символом новой строки 
Строка 34: Строка 44:
   * -z, --null-data строки разделяются байтом с нулевым значением, а не символом конца строки    * -z, --null-data строки разделяются байтом с нулевым значением, а не символом конца строки 
  
-Дополнительно:+==== Дополнительно: ==== 
   * -s, --no-messages подавлять сообщения об ошибках   * -s, --no-messages подавлять сообщения об ошибках
   * -v, --revert-match выбирать не подходящие строки    * -v, --revert-match выбирать не подходящие строки 
Строка 41: Строка 52:
   * --mmap использовать отображение в память (mmap) по возможности   * --mmap использовать отображение в память (mmap) по возможности
  
-Управление выводом:+==== Управление выводом: ==== 
   * -m, --max-count=ЧИСЛО остановиться после указанного ЧИСЛА совпадений   * -m, --max-count=ЧИСЛО остановиться после указанного ЧИСЛА совпадений
-  * -b, --byte-offset печатать вместе с выходными строками смещение в +  * -b, --byte-offset печатать вместе с выходными строками смещение в байтах 
-байтах +
   * -n, --line-number печатать номер строки вместе с выходными строками   * -n, --line-number печатать номер строки вместе с выходными строками
   * --line-buffered сбрасывать буфер после каждой строки    * --line-buffered сбрасывать буфер после каждой строки 
   * -H, --with-filename печатать имя файла для каждого совпадения    * -H, --with-filename печатать имя файла для каждого совпадения 
   * -h, --no-filename не начинать вывод с имени файла    * -h, --no-filename не начинать вывод с имени файла 
-  * --label=МЕТКА выводить МЕТКУ в качестве имени файла для  +  * --label=МЕТКА выводить МЕТКУ в качестве имени файла для стандартного ввода 
-стандартного ввода +
   * -o, --only-matching показывать только часть строки, совпадающей с ШАБЛОНОМ   * -o, --only-matching показывать только часть строки, совпадающей с ШАБЛОНОМ
   * -q, --quiet, --silent подавить весь обычный вывод    * -q, --quiet, --silent подавить весь обычный вывод 
-  * --binary-files=ТИП считать, что двоичный файл ТИПА: +  * --binary-files=ТИП считать, что двоичный файл ТИПА:
 binary, text или without-match.  binary, text или without-match. 
   * -a, --text то же что и --binary-files=text    * -a, --text то же что и --binary-files=text 
Строка 77: Строка 87:
   * -Z, --null печатать байт 0 после имени ФАЙЛА    * -Z, --null печатать байт 0 после имени ФАЙЛА 
  
-Управление контекстом: +==== Управление контекстом: ==== 
-  * **-B, --before-context=ЧИС печатать ЧИСЛО строк предшествующего контекста** + 
-  * **-A, --after-context=ЧИС печатать ЧИСЛО строк последующего контекста** +  * -B, --before-context=ЧИС печатать ЧИСЛО строк предшествующего контекста 
-  * **-C, --context[=ЧИС] печатать ЧИСЛО строк контекста**,+  * -A, --after-context=ЧИС печатать ЧИСЛО строк последующего контекста 
 +  * -C, --context[=ЧИС] печатать ЧИСЛО строк контекста,
   * --color[=КОГДА],   * --color[=КОГДА],
   * --colour[=КОГДА] использовать маркеры для различия совпадающих строк; КОГДА может быть always (всегда), never (никогда), или auto (автоматически)   * --colour[=КОГДА] использовать маркеры для различия совпадающих строк; КОГДА может быть always (всегда), never (никогда), или auto (автоматически)