8

引用符を含む特定のファイルからgrepしたいこの完全な行(以下のawkへのrpmコマンド)があります。grep と grep -F を試してみると、正しい出力が得られないようです。grep ステートメントから行末の一部を削除してみましたが、「!」のように見えます。問題を引き起こしています。文字列を一重引用符で囲んでみましたが、うまくいきません。ありがとうございました。

rpm -qVa | awk '$2!="c" {print $0}'
4

2 に答える 2

11

いくつかのオプションがあります。

  1. 一重引用符を使用する - リテラルの一重引用符が必要な場合は、一重引用符を削除し、バックスラッシュを追加してから元に戻します。

    grep 'rpm -qVa | awk '\''$2!="c" {print $0}'\' filename

  2. POSIX 文字列を使用します。

    grep $'rpm -qVA | awk \'$2!="c" {print $0}\'' filename

  3. あまり具体的でないパターンを使用します。

    grep 'rpm -qvA | awk .$2.="c" {print $0}.' filename

    または、 と のチェックがある場合は、次の$2=="c"よう$2!="c"にすることができます。

    grep 'rpm -qvA | awk .$2[^=]="c" {print $0}.' filename

私は POSIX 文字列、または単純な一重引用符オプションを使用します。これには、 dash.

于 2012-11-19T21:45:31.587 に答える
-1

バックスラッシュでうまくいくはずです

rpm -qVa | awk '\$2!="c" {print $0}'
于 2012-11-19T20:43:39.633 に答える