[英]How to keep only those rows which are unique in a tab-delimited file in unix
在此,如果第二个值相同,则认为两行是多余的。 是否有任何unix / linux命令可以实现以下目的。
1 aa
2 aa
1 ss
3 dd
4 dd
结果
1 aa
1 ss
3 dd
我通常使用以下命令,但是它无法实现我想要的功能。
sort -k2 /Users/fahim/Desktop/delnow2.csv | uniq
编辑:
我的文件大约有2500万行:使用@Steve建议的解决方案的时间:33秒。
$date; awk -F '\t' '!a[$2]++' myfile.txt > outfile.txt; date
Wed Nov 27 18:00:16 EST 2013
Wed Nov 27 18:00:49 EST 2013
排序和唯一性花费太多时间。 等待5分钟后我退出了。
也许这就是您要寻找的:
awk -F "\t" '!a[$2]++' file
结果:
1 aa
1 ss
3 dd
我了解您希望第二个字段按唯一顺序排序文件。 您需要添加-u进行排序以实现此目的。
sort -u -k2 /Users/fahim/Desktop/delnow2.csv
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.