我有一个输入文件,其中包含以下数据:
AUD 100 20
USD 200 30
INR 10 20
AUD 100 30
USD 200 40
EUR 50 60
EUR 50 70
AUD 100 11
USD 200 55
INR 10 35
我运行:
cat filename | sort -u -k1,2
它给我以下输出:
AUD 100 20
EUR 50 60
INR 10 20
USD 200 30
我的理解是,sort -u k1,2
对数据进行排序,并根据列#1和#2中唯一组合的值输出结果。基于这个理解,我运行了以下命令:
cat filename | sort -u -k1
根据第一列的唯一值获取输出。因此,我期望得到以下输出:
AUD 100 20
EUR 50 60
INR 10 20
USD 200 30
但实际输出为:
AUD 100 11
AUD 100 20
AUD 100 30
EUR 50 60
EUR 50 70
INR 10 20
INR 10 35
USD 200 55
USD 200 30
USD 200 40
请问有人能解释一下 sort -u -km,n
选项的作用吗?
m,n
中的-k
表示sort
命令的排序关键字的起始和结束字段。使用sort -k1
,则该排序关键字会影响从第1
个字段到最后一个字段,因此您看到的是这个结果。您需要使用sort -k1,1
。 - iruvar