1. 如果按照分隔符所分割的字段的长度不定则需要用到使用循环来处理每一个字段;
要处理的文本
[root@hadoop usr]# head -n 3 business.txt
AIR 2013-09-01 4403 1348662.0
AIR 2013-09-02 26449 6701268.0
AIR 2013-09-03 45262 1.3755425E7
循环处理
[root@hadoop usr]# head -n 3 business.txt | awk '{for(i=1;i<=NF;i++){print $i;}}'
AIR
2013-09-01
4403
1348662.0
AIR
2013-09-02
26449
6701268.0
AIR
2013-09-03
45262
1.3755425E7
以上可以做到列转行(另一种列转行的更加简单的方式是改变RS)
不转行
[root@hadoop usr]# head -n 3 business.txt | awk '{for(i=1;i<=NF;i++){to=to"||"$i};print to}'
||AIR||2013-09-01||4403||1348662.0
||AIR||2013-09-01||4403||1348662.0||AIR||2013-09-02||26449||6701268.0
||AIR||2013-09-01||4403||1348662.0||AIR||2013-09-02||26449||6701268.0||AIR||2013-09-03||45262||1.3755425E7