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

时间:2013-03-04 08:51:01

标签: unix sed awk

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

col1|col2|col3|col4

我使用了cat file | cut -d '|' -f 3,1,4 输出:

col1|col3|col4

但我的预期输出是:

col3|col1|col4

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:2)

来自man cut

  

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

你应该这样做:

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

答案 1 :(得分:0)

尽管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