Linux下Shell编程——awk编程


awk编程
 
awk功能与sed相似,都是用来进行文本处理的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息,在抽取信息的基础上,才能进行其他文本操作。
 
awk是一种编程语言,gawk是目前最新的版本,当前的Linux版本用的都是gawk。 Linux系统/bin目录下有awk和gawk两个命令,awk实际上是/bin/gawk的链接,gawk是一种功能很强且很实用的语言,利用gawk语言可以实现数据查找、抽取文件中数据、创建管道流命令等功能。 
 
awk编程模型
 
awk定义了两个特殊的字段:BEGIN和END,BEGIN用于在主输入循环之前执行,即在未读取输入文件行之前执行,END则相反,用于在主输入循环之后执行,即在读取输入文件行完毕后执行。
 
我们可简单的将awk编程模型分为三个阶段:
 
        读输入文件之前的执行代码段(由BEGIN关键字标识)
 
        读取输入文件时的执行代码段
 
        读输入文件完毕之后的执行代码段(由END关键字标识) 
 
 
awk调用方法
 
调用awk的方法与调用sed类似,也有三种方式,一种为Shell命令行方式,另外两种是将awk程序写入脚本文件,然后执行该脚本文件。
 
三种方式的命令格式归纳如下:
 
1、在Shell命令行输入命令调用awk,格式为:awk[-F 域分隔符] 'awk程序段' 输入文件
 
同样要注意,需要用单引号将awk程序段引起来。
 
2、将awk程序段插入脚本文件,然后通过awk命令调用它,格式为:awk-f awk脚本文件输入文件
 
与sed命令类似,awk也用-f选项表示调用awk脚本文件。
 
3、将sed命令插入脚本文件后,最常用的方法是设置该脚本文件为可执行,然后直接执行该脚本文件,格式为:./awk脚本文件输入文件
 
如用第3种方式调用awk,awk脚本文件仍以sha-bang(#!)符号开头,但是,sha-bang符号后面加上awk或gawk的路径。

相关内容