AWK 使用循环取出所有的字段

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
———————
版权声明:本文为CSDN博主「韩王-信」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weihongrao/article/details/12851771

发表评论

电子邮件地址不会被公开。 必填项已用*标注