grepでエスケープをしないで検索する

2021-06-28

grepで特殊な文字をエスケープしないで検索する

grepでは正規表現で使用する特殊な文字(\、[、]、^、$、*、.など)は、バックスラッシュ(\)を付けて検索する必要があります。1文字ぐらいなら問題ありませんが複数ある場合は手間になります。

この特殊文字をエスケープしないで固定文字して検索する方法を紹介します

「grep -F」で特殊をエスケープしないで検索する

「grep -F 」を使用すると「固定文字列の検索を行う」事ができますので、特殊な文字列をエスケープしないで検索できます

$ cat test.txt
abc/def
abc\def
abc$def
abc"def

$ grep -F 'c/d' test.txt
abc/def
$ grep -F 'c\d' test.txt
abc\def

但し、「$」の場合は駄目らしく、バックスラッシュ(\)でエクケープする必要があります

$ grep -F "c$d" test.txt
abc/def
abc\def
abc$def
abc"def
$ grep -F "c\$d" test.txt
abc$def

「fgrep 」で特殊をエスケープしないで検索する

「fgrep」も「grep -F 」と同じで、固定長文字列のでの検索をおこないますので、特殊な文字列をエスケープしないで検索できます

$ cat test.txt
abc/def
abc\def
abc$def
abc"def

$ fgrep 'c/d' test.txt
abc/def
$ fgrep 'c\d' test.txt
abc\def

但し、「$」の場合は駄目らしく、バックスラッシュ(\)でエクケープする必要があります

$ fgrep "c$d" test.txt
abc/def
abc\def
abc$def
abc"def
$ fgrep "c\$d" test.txt
abc$def

スポンサーリンク

0
0

LinuxCentOS 5,CentOS 6,CentOS 7

Posted by admin