次のように、行の最後にバックスラッシュを付けて行をgrepしようとしています。
abc\
def
ghij
...
「abc」という行をgrepできるといいのですが。以下のコマンドを試しましたが、機能しませんでした。
grep -EHn "\\$" test_file
grep -PHn "\\$" test_file
この問題をどのように解決すればよいですか? grepのエスケープ文字のロジックがわかりません。式はvimで機能しました。
grep '\\$' test_file
solaris9とUbuntu12.04で問題なく動作します。
一重引用符と二重引用符は、文字が文字通りに解釈されるか、エスケープ/特殊文字として使用される点で異なります。
私はどういうわけか以下を使用して問題を克服しました:
grep -Hn "\\\\$"
しかし、なぜここで4つのバックスラッシュが機能するのかわかりません。それはうまくいきました。