如何在unix中更改cut命令中的字段顺序

如何在unix中更改cut命令中的字段顺序,unix,sed,awk,Unix,Sed,Awk,我想以特定格式打印字段, 输入: 我使用了cat文件| cut-d'|'-f3,1,4 输出: 但我的预期产出是: col3|col1|col4 有人能帮我吗 来自人工切割: 所选输入的写入顺序与读取顺序相同,并且只写入一次 你应该做: $ awk -F'|' -vOFS='|' '{print $3,$1,$4}' <<< "col1|col2|col3|col4" col3|col1|col4 $awk-F'|'-vOFS='|'{print$3,$1,$4}'尽管a

我想以特定格式打印字段, 输入:

我使用了
cat文件| cut-d'|'-f3,1,4
输出:

但我的预期产出是:

col3|col1|col4

有人能帮我吗

来自
人工切割

所选输入的写入顺序与读取顺序相同,并且只写入一次

你应该做:

$ awk -F'|' -vOFS='|' '{print $3,$1,$4}'  <<< "col1|col2|col3|col4"
col3|col1|col4

$awk-F'|'-vOFS='|'{print$3,$1,$4}'尽管awk很好,但这里有一个perl解决方案:

perl -F"\|" -ane 'print join "|",@F[2,0,3]'
测试:

> echo "col1|col2|col3|col4" | perl -F"\|" -ane 'print join "|",@F[2,0,3]'
col3|col1|col4

可能的副本得到了答案,…谢谢:-D
perl -F"\|" -ane 'print join "|",@F[2,0,3]'
> echo "col1|col2|col3|col4" | perl -F"\|" -ane 'print join "|",@F[2,0,3]'
col3|col1|col4