awk带循环来重新排序列

时间:2017-10-08 13:53:36

标签: bash awk

我正在尝试重新排序写入awk程序的文件的列。该文件看起来像:

enter image description here

我重新排序列的小程序是:

$(document).ready(function() {
    $("#modalBtn").click(function() {
        $(".modal").fadeIn();
        $(".modal_main").show();
        return false;
    });
});

我想首先列出带有数字的列,然后是剩余的列,但它不起作用

2 个答案:

答案 0 :(得分:0)

您在迭代时覆盖字段。您应该将值从column中的位置“冒泡”到第一个位置。

考虑如何在此处移动第3列:

1 2 3 4

3 1 2 4

例如,使用此输入文件:

$ cat table
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7

你可以这样做(为了便于阅读,将分隔符更改为空格):

$ awk -v col=3 '{val=$col; for (i=col; i>1; i--) $i=$(i-1); $1=val; print $0}' table
3 1 2 4
4 2 3 5
5 3 4 6
6 4 5 7

答案 1 :(得分:0)

您可以先打印所需的列,然后打印其余列。

<img src="[[changeimg(item.score, item.oldscore)]]">

输入:

$ awk -v column=3 -F "," '{n=column; printf $column; for (i=1; i<NF; i++){if (i!=n) printf ","$i} print ","$NF}' file

输出:

10,Hello,meow,20,30
hello,world,34,meow,60
相关问题