sort -u无法删除重复的行

时间:2016-05-04 15:45:29

标签: linux shell

我是Linux shell命令的新手,我正在学习sort命令。

输入文件如下:

a 1  
b 2  
a 0  

我想将第一列作为排序键并使用'-u'选项删除“a 0”行,因为它与第一行具有相同的键,命令手册中说'-u'将只保持平等的第一个。

当我使用命令sort -k 1 -u text时,结果是:

a 0  
a 1  
b 0  

但是,当我使用命令sort -k 1, 1 -u text时,输出为:

a 1  
b 2  

谁能告诉我这两个命令之间的区别是什么?

2 个答案:

答案 0 :(得分:2)

-k 1

将从字段1排序到行尾。

-k 1,1

将仅按第一个字段排序。你定义了停止位置。

这就是你得到不同输出的原因。

在排序手册页中阅读KEYDEF

答案 1 :(得分:2)

-k选项将键设置为从位置[到位置]的字段。所以-k1不具有描述性(实际上无用),因为它定义了默认的整个记录​​。通过设置-k1,1,您要求排序仅使用第一个字段作为键,从而获得所需的结果。