![如果使用 awk 命令列具有相同的值,則如何刪除 csv 中的多列](https://rvso.com/image/168792/%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%20awk%20%E5%91%BD%E4%BB%A4%E5%88%97%E5%85%B7%E6%9C%89%E7%9B%B8%E5%90%8C%E7%9A%84%E5%80%BC%EF%BC%8C%E5%89%87%E5%A6%82%E4%BD%95%E5%88%AA%E9%99%A4%20csv%20%E4%B8%AD%E7%9A%84%E5%A4%9A%E5%88%97.png)
我有這樣的輸出
4567,4567
5436,5436
1234,5678
預期輸出:
1234,5678
嘗試了下面的命令,但它刪除的是列而不是行
awk -F, 'NF==2{NF-=1}NF<1{sub(/",.*/,"\"")}1' OFS=,
感謝您的幫助和建議
答案1
那這個呢
awk -F, '$1 != $2'
這是透過比較前兩個逗號分隔的欄位來實現的。如果沒有提供顯式語句,則每個awk
語句都有一個隱式語句,這就是這裡使用的。{ print }
結果是僅當兩個欄位不符時才列印輸入行。
答案2
這是我的建議sed
:
sed '/^\(.*\),\1$/d' file
輸出:
1234,5678