LoginSignup
13
10

More than 5 years have passed since last update.

grepでバックスラッシュを含む行を検索したい

Last updated at Posted at 2017-08-15

grepでバックスラッシュ(\)を検索する機会があったのですが、意外にも「はまった」のでメモとして対応策を残しておきたいと思います。

まず文字列の囲み文字/リテラルとしてダブルクオート(")を利用する場合は\\\\を利用します。わかりにくいですが、バックスラッシュを4つ重ねて初めてバックスラッシュひとつになります。つまり\aという文字を検索したい場合は\\\\aとする必要があります。

cat ${some_file} | grep "\\\\"    # バックスラッシュを含む行を抽出する
cat ${some_file} | grep "\\\\a"  # \aを含む行を抽出する

次にシングルクオート(')を利用する場合は\\が正解です。ダブルクオートによるリテラル文字列とは違い、バックスラッシュはふたつしか重ねる必要がありません。つまり\aであれば\\aと書けばgrepで検索することができます。

cat ${some_file} | grep '\\'     # バックスラッシュを含む行を抽出する
cat ${some_file} | grep '\\a'  # \aを含む行を抽出する
13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10