我正在使用grep-type工具来搜索纯文字字符串。我正在寻找一行日志文件的出现,作为单独日志文件中一行的一部分。搜索文本可以包含各种正则表达式特殊字符,例如[]().*^$-\
。
是否存在不使用正则表达式的Unix搜索实用程序,只是搜索字符串的字面值?
答案 0 :(得分:107)
您可以使用grep,使用-F选项。
-F, --fixed-strings PATTERN is a set of newline-separated fixed strings
答案 1 :(得分:9)
这是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).
答案 2 :(得分:3)
将-F
传递给grep
。
答案 3 :(得分:3)
你也可以使用awk,因为它有能力找到固定的字符串,以及编程功能,例如
awk '{for(i=1;i<=NF;i++) if($i == "mystring") {print "do data manipulation here"} }' file
答案 4 :(得分:1)
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