按列排序唯一 - 排序命令?

Com*_*low 7 unix linux sorting bash shell

我有这个文件:

hello 1
hello 2
world 1
world 2
hello 3
hi    3
hi    4
Run Code Online (Sandbox Code Playgroud)

我想这样排序,

hello 1
hi  3
world 1
Run Code Online (Sandbox Code Playgroud)

问题是我只需要第1列中的第一个唯一项目.

我尝试过,sort -k1 -u file.txt但它没有像我期望的那样工作.我该怎么做?

pot*_*ong 22

这可能对你有用:

sort -uk1,1 file
Run Code Online (Sandbox Code Playgroud)

这仅对第一个字段上的文件进行排序,并根据第一个字段删除重复的行.

  • `-k1`从字段1到最后一个字段排序(如果你有5列,它与`-k1,5`相同).`-k1,1`在第一列和第一列上排序. (6认同)
  • 你能解释一下吗? (2认同)

Pra*_*ash 5

根据第1列排序并提供唯一列表

sort -u -t:-k 1,1 test.txt

-t:=冒号是分隔符

-k 1,1 =基于第1列

根据第1列和第3列排序并提供唯一列表

sort -u -t:-k 1,1 -k 3,3 test.txt

-t:=冒号是分隔符

-k 1,1 3,3 =基于第1列和第3列