B! 9 0 0 0 grepを使った時にちょっとひっかかったことがあったのでそれについてのメモ。 ドル記号($) バックスラッシュ(\) まとめ ドル記号($) 通常grepでメタ文字を検索するときにはバックスラッシュ(\)(または円マーク) を付けてエスケープする必要がありますが、 この際にシェルのエスケープ/変換も効くのでシェルで変換されるものに関しては 注意が必要です(他のシェルでも大概同じだと思いますがbashでの環境を前提にしてます)。 ドル記号($)は変数の参照に使うので、エスケープせずに 単純にこれを書くと続く文字列の変数を 参照する様な形になって、大概の場合は未定義変数=空文字で 全ての行が該当してしまいます1。 $ printf "aaa\nbbb\$ccc" |grep "$ccc" aaa bbb$ccc これをきちんと$cccで検索するにはドル記号をエスケープして
![grepでドル記号やバックスラッシュを検索する](https://cdn-ak-scissors.b.st-hatena.com/image/square/efeaebf6c8f94c3462d3eea547c3dba0f88e47b3/height=288;version=1;width=512/https%3A%2F%2Fimages-na.ssl-images-amazon.com%2Fimages%2FI%2F51we4PmUZnL._SS200_.jpg)