技巧:AWK 关联数组的一个应用

本文通过一个实例阐述了 AWK 关联数组的应用,读者可以通过这篇文章得到理论和实践两方面的知识,例子很简单,希望这篇文章能起到抛砖引玉的作用。

AWK、AWK 关联数组(associative arrays)

AWK是一种优秀的文本处理工具,它不仅是 Linux 中也是很多其它 Unix 环境中现有的功能最强大的数据处理工具之一。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算、进程控制语句以及内置的变量和函数。它具备了一个完整语言所具有的几乎所有特性。 在 awk 中数组叫做关联数组(associative arrays),因为下标记可以是数也可以是串。awk 中的数组不必提前声明,也不必声明大小。数组元素用 0 或空串来初始化,这根据上下文而定。例如:

1:可以用数值作数组索引(下标)

Myarray[1]=”xu sihua”
Myarray[2]=”780927”


2:可以用字符串作数组索引(下标)

Myarray[“first”]=”xu”
Myarray[“last”]=”si hua”
Myarray[“birth”]=”780927”


使用中 print myarray[1] 将得到”xu sihua” 而 print myarray[2] 和 print[“birth”] 都将得到 ”780927” 。





回页首


问题的提出

在我们的生产系统中有一个应用每天都有大量的数据库插入操作,这些操作被记录在了日志文件中,而我们的目的就是从这些日志文件中提取所需要的数据。日志文件的数据格式如下:

--sert into table_a ( field1,field2,field3 ...) values ( 3,1,'xx',...) ;
--sert into table_a ( field4,field1,field2 ...) valuse ( 'yyy',2,675 ,...);
--sert into table_a ( field1,field8,fieldN ...) valuse ( 'zzz','ccc','eee' ,...);


其中 field1、field2、fieldN 等是数据库表 table_a 中的字段,每条语句中的字段数不定,顺序也不定,但是所有的字段都是表 table_a 内的字段,values 中的值有字符串也有整数。我想通过上面的文件产生下面格式的数据:

field1_value|field2_value|field3_value|.....|fieldN_value|
field1_value|field2_value|field3_value|.....|fieldN_value|
field1_value|field2_value|field3_value|.....|fieldN_value|




本文转自IBM Developerworks中国

      请点击此处查看全文



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值