2013-03-04 41 views
0

我想打印在特定格式的领域, 输入:如何更改剪切命令场序在UNIX

col1|col2|col3|col4 

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

col1|col3|col4 

但我的预期输出是:

col3|col1|col4 

任何人都可以h帮我用这个?

+0

[从切命令强制输出字段的顺序]的可能重复(http://stackoverflow.com/questions/1037171/forcing-the-order-of-output-fields-从切割命令) – dogbane 2013-03-04 08:56:46

回答

2

man cut

选择输入被写在相同的顺序,它被读取,写入只有一次

你应该这样做:

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

得到了答案,......谢谢:-D – Pooja 2013-03-04 09:18:28

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