条件文と意味を実装してawkを試してみてください。

条件文と意味を実装してawkを試してみてください。

8つの列を持つファイルがあり、私のタスクの1つは列3の値を取得することです。行の値が 123 に等しくない場合、列 8 が印刷されるため、列 3 が 123 に等しい場合は何も印刷されません。表示内容の印刷

プログラムの一部は - >

testing=`echo $C3  | awk '!/123/ {print $C1, $C2, $C3, $C4, $C5, $C6, $C7, $C8,}'>>final.txt` 

関連エラーは

 awk: illegal field $(), name "C1"
 input record number 1, file 
 source line number 1

123私はそれを含まない行に対して次のようにawk '!/123/'スクリプトを書くことができることがわかりました。否定一致にはgrepを使用してください(fooを含まない一致行)。

私も試しました

testing=`echo $C3  | awk '!/123/ ; END {print $C1, $C2, $C3, $C4, $C5, $C6, $C7, $C8,}'>>final.txt` 

ただし、エラーも発生します。

ベストアンサー1

awk列形式のファイル処理用に特別に設計されています。各入力行をスペース(またはスイッチを介して提供する他の項目-F)に自動的に分割し、列を、、...、awkとして使用できます。$1$2$N

したがって、3番目の列(スペースで定義されている)以外の行を印刷するには、123次のようにします。

awk '$3!="123"' file

何かが true と評価された場合、デフォルトのジョブはawk印刷することです。したがって、上記のコマンドはfile3番目の列ではなくすべての行を印刷します123

おすすめ記事