awk 编程语言入门
一,什么是 awk
awk 是 linux 下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循
环,有数组,有正则,有函数等。他读取输出,或者文件的方式是一行,一行的读,根据你给出的条件进行查找,并在找出来的行中进行操作,
感觉他的设计思想,真的很简单,但是结合实际情况,具体操作起来就没有那么简单了。他有三种形势,awk,gawk,nawk,平时所说的 awk 其
实就是 gawk。
二,awk 中的记录,域,分割符
当我们读取输出时,或者读取文件时,读取一行就是一个记录。记录分割符是默认是回车符,保存在 RS,ORS 中。
我们从记录中分割出我们要单词,或者是词组等,我们称他为域,域分割符,默认的是空格和 TAB 銉,保存在内建变
量 ORS 中。举个例子:
aaaa:bbbb:ccccccc
1111:2343:5t43343
上面有二行,这二行就是二个记录,每行后面的回车呢,就是记录分割符,里面冒号呢,就是域分割符,分割出来的,aaaa,1111 这类东西就是
域了。
awk -F: '{print $1}' testfile
三,awk 的内建变量和运算符
1,变量
变 量 描述
$n
当前记录的第 n 个字段,字段间由 FS 分隔。
$0
完整的输入记录。
ARGC
命 令行参数的数目。
ARGIND
命令行中当前文件的位置(从 0 开始算)。
ARGV
包 含命令行参数的数组。
CONVFMT
数字转换格式(默认值为%.6g)
ENVIRON
环 境变量关联数组。
ERRNO
最后一个系统错误的描述。
FIELDWIDTHS
字 段宽度列表(用空格键分隔)。
FILENAME
当前文件名。
FNR
同 NR,但相对于当前文件。
FS
字段分隔符(默认是任何空格)。
IGNORECASE
如 果为真,则进行忽略大小写的匹配。
NF
当前记录中的字段数。
NR
当 前记录数。
OFMT
数字的输出格式(默认值是%.6g)。
OFS
输 出字段分隔符(默认值是一个空格)。
ORS
输出记录分隔符(默认值是一个换行符)。
评论0
最新资源