我有这个文件:
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
了,但它没有像我预期的那样工作。我该怎么做?
这可能对您有用:
sort -uk1,1 file
这仅对第一个字段上的文件进行排序,并根据第一个字段删除重复的行。
根据第 1 列排序并给出唯一列表
排序 -u -t : -k 1,1 test.txt
-t : = 冒号是分隔符
-k 1,1 = 基于第 1 列
根据第 1 列和第 3 列排序并给出唯一列表
排序 -u -t : -k 1,1 -k 3,3 test.txt
-t : = 冒号是分隔符
-k 1,1 3,3 = 基于第 1 列和第 3 列
您可以将其通过管道传输到 awk:
sort -k1 file | awk '!($1 in a){a[$1]; print}'
hello 1
hi 3
world 1