test.txt
最初の2つの列に基づいて、ファイルから2つの重複エントリを削除する必要があります。
tom,22,777
tom,22,888
tom,18,54
ray,44,43843
予想される結果:
tom,18,54
ray,44,43843
試してみましたが動作cat test.txt | sort -u t, k1,1 k2,2
しません
答え1
以下を使用できますawk
。ファイルを2回処理します。最初と2番目のフィールドの発生回数を1回計算し、行を再印刷します(回数が1の場合)。
awk -F, 'NR==FNR{seen[$1,$2]++;next};seen[$1,$2]==1' infile infile
答え2
grep(1)
1つのアプローチはGNU(for)を想定し、fgrep -f -
入力フィールドに英数字のみが含まれていると仮定することです。
cut -d , -f 1,2 file.csv | sort | uniq -d | fgrep -vwf - file.csv
答え3
この試み
cat file.txt | grep -v "`cut -d , -f 1,2 file.txt | uniq -d`"