gawk使用初步

 由于最近要对一些文本数据进行处理,而又听说脚本编程会较C编程要方便一些,于是开始了与gawk的亲密接触.

 之前,对gawk我可是闻所未闻,只是买的一本入门书中恰好有关于gawk的介绍,而其中又恰好有满足我需求的功能.

原本以为脚本编程既然方便,那他一定是比较接近自然语言的.可是谁知道为了实现小小的功能,确花去了我一天的时

间.如果早就选择c语言的话,估计早就完成了.不过还是自己安慰自己,毕竟新学了一些东西.

   其实学过一种高级编程语言之后,学习gawk还是比较方便容易的.但是一直要牢记一点,就是gawk中的所有操作都是

针对行的,其中的每一条命令都顺序对一行执行操作之后,才开始处理下一行.不过在gawk脚本中有两段特殊的部分,

BEGIN和END.在BEGIN部分的语句要在待处理的文件打开之前执行,而END中的操作则是在到达文件结尾的时候才

可以执行.所以所有的初始化操作都将放在BEGIN部分,而所有的首尾工作都将在END部分执行.同样的针对行操作的

各种命令是不能出现在BEGIN和END部分的.

下面是针对gawk的一些基本语法.

   gawk命令包涵三个部分,(1)gawk  (2)/模式/{操作}  (3)待处理的文件(可以有多个输入文件)

其中模式部分和大部分的命令行正则表达是相同,它通过模式选定文件中相匹配的行,并对改行执行后面相应的操作.

当需要处理多个文件时,则顺序处理各个文件,即处理完第一个文件后,对下一个文件执行相同的操作.

1.变量

  与C语言不同,在gawk中无需对变量进行声明,当然也无需进行显示的初始化,要使用一个变量时直接在命令行应用即

可.系统默认赋给变量的初值是零.

例如:     gawk   '/ab/{ i= $1}'   test

运行命令无错,没有输出结果.这里的"i"就是未经声明既使用的变量.当然也可以是

gawk  ' /ab/{print  i}'  test

此时的打印结果是ab所在的整个行

(注意:在命令行使用gawk命令,要把模式和操作部分用单引号括起来)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值