我想以特定格式打印字段, 输入:
col1|col2|col3|col4
我使用了cat file | cut -d '|' -f 3,1,4
输出:
col1|col3|col4
但我的预期输出是:
col3|col1|col4
任何人都可以帮我吗?
答案 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