我有一个如下所示的文件:
20 30 40
80 70 60
50 30 40
每一列代表一个过程。我想知道每一行的程序是如何执行的。我理想的输出是
3 2 1
1 2 3
1 3 2
即在第 1 行中,第三列具有最高值,然后是第二列,然后是第一个最小值(这可以颠倒过来,并不重要)。
我该怎么做?
最佳答案
我会使用其他一些 Unix 工具(read
、cat
、sort
、cut
、当然还有 tr
、sed
和 bash
):
while read line
do
cat -n <(echo "$line" | sed 's/ /\n/g') | sort -r -k +2 | cut -f1 | tr '\n' ' '
echo
done < input.txt
输出如下所示:
3 2 1
1 2 3
1 3 2
关于sorting - 对值进行排序并输出其排序列的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22055055/