首页 > 解决方案 > 如何对第 3 列进行排序,并使用 shell 脚本更改新文件中第 2 列的对应值?

问题描述

我想使用sort命令进行排序。输入文件是1.txt

      1    2   2
      1    3   5.5
      1    4   1.5
      1    5    2.2
      2    1    1.1
      2    3    0.7
      2    4    0.9
      2    5    0.4

输出文件应该是

  1    4   1.5
  1    2   2
  1    5   2.2
  1    3   5.5
  2    5   0.4
  2    3   0.7
  2    4   0.9
  2    1   1.1

第 3 列应排序,相应的第二列应更改。

标签: linuxshellsorting

解决方案


似乎您只想对两个键进行数字排序:

$ sort -n -k1 -k3 file
      1    4   1.5
      1    2   2
      1    5    2.2
      1    3   5.5
      2    5    0.4
      2    3    0.7
      2    4    0.9
      2    1    1.1

-n进行数字排序,首先在字段 1 上-k1,然后在字段 3 上-k3


推荐阅读