word
-w/–word-regexp – удобная опция, ищем конкретное слово. Очень удобно, если есть уникальные слова в каждой строке (напр. ID).
-w, --word-regexp The expression is searched for as a word (as if surrounded by `[[:<:]]' and `[[:>:]]'; see re_format(7)). $ cat sw 1 -- xxx 2 -- yyy 3 -- zzz 4 -- kkk 5 -- zzz $ cat sw | grep -w 2 2 -- yyy $ cat sw | grep -w yyy 2 -- yyy
or/and
OR – ищем любой из двух. При любом подпадании из двух выводим, если попали оба – выводим оба результата.
$ grep 'INTEGER: 1\|INTEGER: 2' test
no
grep –invert-match – делаем grep строк с значением НЕэталон
$ cat >sw 1 2 3 $ cat sw | grep --invert-match 1 2 3
recursive
Ищем во всех подпапках, не только в текущей
grep -r limit *
zgrep
Используется для поиска в архивированных файлах
egrep
Что-то простое можно сделать через простой grep.
# диапазон grep "Ищем [2-3] диапазон 2-3" test_file # последний символ в строке $ cat >sw 13129319fsdf1 fsdfri2m23irm2 #823478$*81! fsdf2i3g!f $ grep -o '.$' sw 1 2 ! f
Что-то более сложное уже потребует включения extended-regexp через grep -E или используя alias egrep:
grep -oE '\((.+)\)
- -E – включение использования расширенных регулярных выражений в grep
- -o – показываем только то, что подпало под regexp, а не всю строку, очень полезная вещь когда нужно что-то выделить, а остальное отбросить
- -E – включение использования расширенных регулярных выражений в grep
- -o – показываем только то, что подпало под regexp, а не всю строку, очень полезная вещь когда нужно что-то выделить, а остальное отбросить
Найти во всей директории pattern. Не следует запускать его на корень (/) т.к. работать будет очень долго.
~$ grep -inr 'pattern' . >res