webdevqa.jp.net

行の終わりにバックスラッシュを付けて行をgrepする方法は?

次のように、行の最後にバックスラッシュを付けて行をgrepしようとしています。

abc\
def
ghij
...

「abc」という行をgrepできるといいのですが。以下のコマンドを試しましたが、機能しませんでした。

grep -EHn "\\$" test_file
grep -PHn "\\$" test_file

この問題をどのように解決すればよいですか? grepのエスケープ文字のロジックがわかりません。式はvimで機能しました。

4
Marcus Thornton
grep '\\$' test_file

solaris9とUbuntu12.04で問題なく動作します。

一重引用符と二重引用符は、文字が文字通りに解釈されるか、エスケープ/特殊文字として使用される点で異なります。

6
djg

私はどういうわけか以下を使用して問題を克服しました:

grep -Hn  "\\\\$"

しかし、なぜここで4つのバックスラッシュが機能するのかわかりません。それはうまくいきました。

3
Marcus Thornton