【发布时间】:2013-09-02 04:17:22
【问题描述】:
我有一个这样的文件(有数百行和列)
1 2 3
4 5 6
7 88 9
我想根据最后一行的值(或特定的行值)对列重新排序
1 3 2
4 6 5
7 9 88
如何使用 awk(或其他)来完成这项任务? 提前感谢您的帮助
编辑:我要感谢大家,如果我不够清楚,我深表歉意。 我想做的是:
- 取一行(例如最后一行);
- 使用所选行的排序值重新排序矩阵的列以确定顺序。
所以,最后一行是7 88 9,排序后是7 9 88,那么这三列必须以某种方式重新排序,在这种情况下,最后两列交换。
一个更通用的四列示例,再次基于最后一行:
输入:
1 2 3 4
4 5 6 7
7 88.0 9 -3
输出:
4 1 3 2
7 4 6 5
-3 7 9 88.0
【问题讨论】:
-
你的意思是对最后一行和所有行进行排序之前进行相同的 col 交换?
-
为什么前两行被交换了,它们不再按任何方向排序!?
-
我完全不知道这个问题是关于什么的。有人知道吗?
-
@EdMorton 我相信他想切换列的顺序,使最后一行按升序排列。
-
@EdMorton 我的理解是,他想对最后一行的字段进行排序,在排序过程中,字段会被交换。 (所谓重新排序),最后一行排序后,他希望上面的所有行都做同样的事情(重新排序)。