如何使用“awk”命令进行多列输出?

Jan*_*ski 1 awk

我正在使用如下所示的“awk”命令,它打印所有包含“cake”的 .out 文件的第 4 列:

awk '/cake/{print $4}' ./*/*.out

我的输出是一列,说:

1
2
3
4
5
6
Run Code Online (Sandbox Code Playgroud)

我如何将其重新格式化为如下所示的内容:

1 4  
2 5  
3 6 
Run Code Online (Sandbox Code Playgroud)

或者

1 3 5
2 4 6
Run Code Online (Sandbox Code Playgroud)

即具有一定数量的列元素(在上述情况下为 3 和 2)。

更好的是,我可以让它在同一命令中将输出输出为 csv 文件吗?

谢谢你。

Sun*_*eep 5

你可以自己做awk,但我更喜欢pr这个

$ # -2 is number of columns needed
$ # -s option specifies delimiter, default is tab
$ seq 6 | pr -2ts','
1,4
2,5
3,6
$ seq 6 | pr -3ts','
1,3,5
2,4,6

$ # you can also change horizontal/vertical order
$ seq 6 | pr -3ats','
1,2,3
4,5,6
Run Code Online (Sandbox Code Playgroud)

  • 长选项:`seq 6 | pr --columns 2 --omit-header --separator=','` (2认同)