我想以特定格式打印字段,输入:
col1|col2|col3|col4
我使用cat file | cut -d '|' -f 3,1,4
了输出:
col1|col3|col4
但我的预期输出是:
col3|col1|col4
谁能帮我这个?
来自man cut
:
所选输入的写入顺序与其读取顺序相同,并且只写入一次
你应该做:
$ awk -F'|' -vOFS='|' '{print $3,$1,$4}' <<< "col1|col2|col3|col4"
col3|col1|col4
即使 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