私は純粋にリテラルな文字列を検索するgrepタイプのツールを探しています。別のログファイルの行の一部として、ログファイルの行の発生を探しています。検索テキストには、[]().*^$-\
など、あらゆる種類の正規表現の特殊文字を含めることができます。
正規表現を使用せず、文字列のリテラル出現を検索するだけのUnix検索ユーティリティはありますか?
-Fオプションを使用して、そのためにgrepを使用できます。
-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