Grep для литеральных строк
Я ищу инструмент типа grep для поиска чисто литеральных строк. Я ищу появление строки файла журнала, как часть строки в отдельном файле журнала. Текст поиска может содержать все виды регулярных выражений специальных символов, например,[]().*^$-.
есть ли утилита поиска Unix, которая не будет использовать регулярное выражение, а просто искать литеральные вхождения строки?
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).
вы также можете использовать на 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