次の記事を検討してください。
foo,1000,boo,A
foo,1000,boo,B
foo,1001,boo,B
foo,1002,boo,D
私たちは次の規則を持っています:
If $2 equal 1000, $4 should be equal A
If $2 equal 1001, $4 should be equal B
If $2 equal 1002, $4 should be equal C
awk
上記のルールを単一のコマンドに適用し、$4
従わない場合は、履歴を印刷したいと思います。
希望の出力は次のとおりです。
foo,1000,boo,B
foo,1002,boo,D
私は以前試しました:
awk -F, '{if(($2==1000 && $4!=A) || ($2==1001 && $4!=B) || ($4==1002 && $4!=C)){print $0}}'
ベストアンサー1
これを使用してください:
awk -F, '($2==1000 && $4!="A") || ($2==1001 && $4!="B") || ($2==1002 && $4!="C")' file
カーブ括弧には3つの条件があり、そのうちの1つが適用されると線が印刷されます。括弧内の条件はANDで連結されているため、両方を適用する必要があります。