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 各ステートメントに暗黙のステートメントがあり、これがここで使用されます。{ print }その結果、両方のフィールドが一致しない場合にのみ入力行が印刷されます。

答え2

私の提案は次のとおりですsed

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

出力:

1234,5678

関連情報