我有一个包含几千行的CSV文件。它看起来像这样:
abc,123,hello,world
abc,124,goodbye,turtles
def,100,apples,pears
....
我希望第一列中的每个唯一条目重复三次。例如:如果恰好三行有" abc"在第一列很好,没有任何反应。但如果没有正好三行" abc"在第一列中,所有行都带有" abc"必须删除第1列中的内容。
此
abc,123,hello,world
abc,124,goodbye,turtles
abc,167,cat,dog
def,100,apples,pears
def,10,foo,bar
ghi,2,one,two
ghi,6,three,four
ghi,4,five,six
ghi,9,seven,eight
应该成为:
abc,123,hello,world
abc,124,goodbye,turtles
abc,167,cat,dog
非常感谢,
答案 0 :(得分:5)
这个awk单行应该这样做:
awk -F, 'NR==FNR{a[$1]++;next}a[$1]==3' file file
它不需要对文件进行排序。
答案 1 :(得分:5)
awk方式
awk -F, 'FNR==NR{a[$1]++;next}a[$1]==3' test{,}
,
虽然是第一个文件
再次阅读文件