引用符を含む特定のファイルからgrepしたいこの完全な行(以下のawkへのrpmコマンド)があります。grep と grep -F を試してみると、正しい出力が得られないようです。grep ステートメントから行末の一部を削除してみましたが、「!」のように見えます。問題を引き起こしています。文字列を一重引用符で囲んでみましたが、うまくいきません。ありがとうございました。
rpm -qVa | awk '$2!="c" {print $0}'
いくつかのオプションがあります。
一重引用符を使用する - リテラルの一重引用符が必要な場合は、一重引用符を削除し、バックスラッシュを追加してから元に戻します。
grep 'rpm -qVa | awk '\''$2!="c" {print $0}'\' filename
POSIX 文字列を使用します。
grep $'rpm -qVA | awk \'$2!="c" {print $0}\'' filename
あまり具体的でないパターンを使用します。
grep 'rpm -qvA | awk .$2.="c" {print $0}.' filename
または、 と のチェックがある場合は、次の$2=="c"
よう$2!="c"
にすることができます。
grep 'rpm -qvA | awk .$2[^=]="c" {print $0}.' filename
私は POSIX 文字列、または単純な一重引用符オプションを使用します。これには、 dash
.
バックスラッシュでうまくいくはずです
rpm -qVa | awk '\$2!="c" {print $0}'