0

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

col1|col2|col3|col4

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

col1|col3|col4

但我的预期输出是:

col3|col1|col4

谁能帮我这个?

4

2 回答 2

2

来自man cut

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

你应该做:

$ awk -F'|' -vOFS='|' '{print $3,$1,$4}'  <<< "col1|col2|col3|col4"
col3|col1|col4
于 2013-03-04T08:56:23.520 回答
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
于 2013-03-04T10:09:34.897 回答