linux - 如何对第 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 列应排序,相应的第二列应更改。
解决方案
似乎您只想对两个键进行数字排序:
$ 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
。
推荐阅读
- python - ValueError:layersequential_5 的输入 0 与 layer 不兼容::预期 min_ndim=4,发现 ndim=2。收到的完整形状:[无,953]
- c# - 将 VARIANT 通过 ref 传递给 COM 对象
- javascript - javascript选择属性值包含某物
- java - 来自网络服务器的 Java 源代码,可以编译和运行,但不能使用依赖项(API)
- python - 编码大字符串列
- tmux - 我可以在 tmux split 创建当前窗格的子外壳吗?
- r-markdown - 如何在 R/考试练习中包含 TikZ 图像?
- mysql - 无法通过 docker 容器中的 Jyputer 读取 mysql(错误:DatabaseError: 2005 (HY000): Unknown MySQL server host 'localhost:3306' (22))
- xml - 如何使用其中一个键作为 xml 作为字符串发布邮递员正文?
- sql - 配置单元字符串 json 列表到具有特定字段的数组