awk コマンドを使用して、行に同じ値がある場合に CSV 内の複数の列を削除する方法

awk コマンドを使用して、行に同じ値がある場合に CSV 内の複数の列を削除する方法

このような出力があります

4567,4567
5436,5436
1234,5678

期待される出力:

1234,5678

以下のコマンドを試しましたが、行ではなく列が削除されています

awk -F, 'NF==2{NF-=1}NF<1{sub(/",.*/,"\"")}1' OFS=,

ご協力とご提案ありがとうございます

答え1

これはどうですか

awk -F, '$1 != $2'

これは、最初の 2 つのコンマで区切られたフィールドを比較することによって機能します。明示的なステートメントが提供されていない場合、各awk ステートメントには暗黙の if があり{ print }、それがここで使用されます。その結果、2 つのフィールドが一致しない場合にのみ入力行が印刷されます。

答え2

これが私の提案ですsed:

sed '/^\(.*\),\1$/d' file

出力:

1234,5678

関連情報