使用剪切和粘贴交换列

using cut and paste to swap column

我得到了如下文件,我想交换第二列和第三列。

1425    Juan    14.25
4321    George    21.11
6781    Anna    16.77
1451    Ben    21.77
2277    Tuan    18.77

这是我用的方法,可以用,但是分两行写的。

cut -f1,3 test1.txt > cat
cut -f2 test1.txt | paste cat -> result

有什么办法可以写成一行吗?

评论:不能用 AWK 做那个,只能剪切和粘贴。

您可以将命令与 ;&& 连接起来:

cut -f1,3 test1.txt > cat && cut -f2 test1.txt | paste cat -> result

cut -f1,3 test1.txt > cat ; cut -f2 test1.txt | paste cat -> result

或者,使用支持进程替换的shell:

paste <(cut -f1 test1.txt) <(cut -f3 test1.txt) <(cut -f2 test1.txt)