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



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



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

518   5  

5 ответов:

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

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

или 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).

передать -F до grep.

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

awk '{for(i=1;i<=NF;i++) if($i == "mystring") {print "do data manipulation here"} }' file
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

Comments

    Ничего не найдено.