Grep для литеральных строк

Я после инструмента grep-типа для поиска чисто литеральных строк. Я ищу возникновение строки файла журнала как часть строки в отдельном файле журнала. Искомый текст может содержать все виды regex специальных символов, например, []().*^$-\.

Существует ли утилита поиска Unix, которая не использовала бы regex, но просто искать литеральные случаи строки?

87
задан paxdiablo 14 July 2010 в 02:23
поделиться

4 ответа

Для этого можно использовать grep с опцией -F.

-F, --fixed-strings       PATTERN is a set of newline-separated fixed strings
118
ответ дан 24 November 2019 в 07:50
поделиться

Это либо fgrep, либо grep -F, которые не работают с регулярными выражениями. fgrep идентичен grep -F, но я предпочитаю не беспокоиться об аргументах, будучи по природе своей ленивым :-)

grep   ->  grep
fgrep  ->  grep -F  (fixed)
egrep  ->  grep -E  (extended)
rgrep  ->  grep -r  (recursive, on platforms that support it).
11
ответ дан 24 November 2019 в 07:50
поделиться

Передайте -F в grep .

3
ответ дан 24 November 2019 в 07:50
поделиться

Вы также можете использовать awk, так как он имеет возможность найти фиксированную строку, а также возможности программирования, например, только

awk '{for(i=1;i<=NF;i++) if($i == "mystring") {print "do data manipulation here"} }' file
3
ответ дан 24 November 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: