我正在尝试获取具有多列的文件中的唯一行。
我的文件“file.txt”包含下面的示例记录
20230830,52678,004,Apple,21
20230830,52678,004,Apple,20
20230830,52678,004,Apple,19
20230831,47689,001,Orange,15
20230901,47620,002,Grape,29
我想要的输出是仅打印第 1 列到第 4 列中的唯一行。无论第 5 列上的值如何
20230831,47689,001,Orange,15
20230901,47620,002,Grape,29
我尝试使用 sed 在第 1-4 列和第 5 列之间添加唯一的分隔符
然后我使用 awk 命令从第 1-4 列获取唯一行
sed 's/,/|/4' file.txt | awk -F"|" '{arr[$1]++} END{for(i in arr) if(arr[i]==1) print $0}'
使用这段代码,它可以处理少量数据,但是当我在包含 1000 行的文件中使用时,我得到...
20230831,47689,001,Orange,15
20230831,47689,001,Orange,15
20230831,47689,001,Orange,15
20230831,47689,001,Orange,15
...
独特的价值观不断涌现。他们在复制。似乎我只得到了一条独特的线,而且它一直在重复。
如果我的代码有问题,你能帮我吗?
我期望只打印这样的独特线条
20230831,47689,001,Orange,15
20230901,47620,002,Grape,29