我有一个包含四列的文件
3022751,6656,7656,T029957
3022751,6054,7054,T029957
3022751,10400,10400,T029958
3022751,10400,10400,T029958
我想删除第2列和第3列中有重复的行。所以我的预期输出是这样的
3022751,6656,7656,T029957
3022751,6054,7054,T029957
我的这个awk脚本运行正常,但没有像这样删除重复的行
awk '!x[$2,$3]++' FS=","
当前输出
3022751,6656,7656,T029957
3022751,6054,7054,T029957
3022751,10400,10400,T029958
感谢。
答案 0 :(得分:2)
awk -F, '$2!=$3' file
阅读Arnold Robbins撰写的有效Awk编程,第4版。
答案 1 :(得分:1)
$ cat ip.txt
3022751,6656,7656,T029957
3022751,6054,7054,T029957
3022751,10400,10400,T029958
3022751,10400,10400,T029958
$ grep -vE '^[^,]+,([^,]+),\1' ip.txt
3022751,6656,7656,T029957
3022751,6054,7054,T029957
^[^,]+,
,
第一栏和([^,]+)
\1
抓住第二栏-v
反向引用捕获的组