根据第1列和第2列的值对数据进行排序,仅输出第1列和第2列的uniq值

维琪

我有一个包含以下数据的输入文件:

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 

以获得基于列#1中唯一值的输出。所以我期望这个输出:

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选项发生了什么吗?

毛罗

密钥字段号用指定-k <start>,<end>如果未指定,<end>则默认为行尾所以:

sort -u -k 1 filename

将基于整行对唯一值进行排序和打印如果您只想考虑第一个关键(您的预期结果),则必须:

sort -u -k 1,1 filename

PS,您实际上不必将cat输出通过管道传输到sort...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R根据第1和第2列中的值随机排列第3-6列中的值

根据 1 个表中第 1 列和第 2 列之间的匹配进行分组

如何从第1列和第2列提取最大值和最小值

选择第 1 列的第 2 列的最大值

从包含最小和最大条件的第 2 列和第 3 列以及作为单独值的第 1 列检索第 4 列?

使用第1列和第2列填充第3列

如何根据第 2 列条件获取第 1 列中的唯一值

按第2列排序,按第1列分组

使用 Powershell 将匹配的输出作为第 1 列和第 2 列导出到 CSV

合并两个三列矩阵:第 1 列和第 2 列中的唯一值,第 3 列中的最大值

将第 1 列和第 2 列与另一个表进行比较

根据文件的第 1 和第 2 列和第二个文件的第 3 和第 4 列加入 2 个文件

如何根据第1列更新第2列,然后根据第2列更新第3列

引导程序:设置第1列第2列标签和输入的第1列“标签和显示”

如何在 SQL 中按第 1 列等于第 2 列进行排序

最小值矩阵 A 在第 2 至第 3 行和第 2 列的索引行和索引列

第2列的值与某些条件匹配的第1列的最大值

将第2列中的值追加到第1列中的值

如果第2列的行与值匹配,则对第1列的值求和

使用 awk 根據第 1 列中的值連接第 2 列中的值

python比较2列,如果第3列与第2列匹配,则用第1列的值编写第4列

如何从列和前后列中返回第 1 2...n 个非空值

当第1列> 0且第2列<= 0时如何将值从第1列分配给第2列

如何比较文件1的第2列和第3列以及文件2的第4列和第5列

如何根据第 2 列的条件从数据框的第 1 列中删除行?

如何检查列值何时从 0 更改为 1 并且在多次计数后第 1 列和第 2 列值相同

Sql-查找两列重复值并显示“第1列”的所有值和“第2列”的唯一值

如何从第1列中id分组的第4列的第3列的第3列中获取最大值(范围1-2)?

检查第1列的值之前是否在数据集中出现了其他第2列的值