我有这个文件:
hello 1
hello 2
world 1
world 2
hello 3
hi 3
hi 4
我想这样排序,
hello 1
hi 3
world 1
问题是我只需要第1列中的第一个唯一项目。
我尝试了sort -k1 -u file.txt
,但它没有按照我的预期运作。我该怎么做?
答案 0 :(得分:21)
这可能对您有用:
sort -uk1,1 file
这仅对第一个字段上的文件进行排序,并根据第一个字段删除重复的行。
答案 1 :(得分:5)
根据第1列排序并提供唯一列表
排序-u -t:-k 1,1 test.txt
-t:=冒号是分隔符
-k 1,1 =基于第1列
根据第1列和第1列排序并提供唯一列表第3栏
排序-u -t:-k 1,1 -k 3,3 test.txt
-t:=冒号是分隔符
-k 1,1 3,3 =基于第1列和第1列。第3栏
答案 2 :(得分:3)
你可以把它传递给awk:
sort -k1 file | awk '!($1 in a){a[$1]; print}'
hello 1
hi 3
world 1