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

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

Есть ли утилита поиска Unix, которая не будет использовать регулярное выражение, а просто поиск литералов вхождения строки?

Ответ 1

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

-F, --fixed-strings       PATTERN is a set of newline-separated fixed strings

Ответ 2

Это либо 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).

Ответ 3

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

awk '{for(i=1;i<=NF;i++) if($i == "mystring") {print "do data manipulation here"} }' file

Ответ 4

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

Ответ 5

cat list.txt
one:hello:world
two:2:nothello

three:3:kudos

grep --color=always -F"hello

three" list.txt

Выход

one:hello:world
three:3:kudos