码迷,mamicode.com
首页 > 其他好文 > 详细

awk中的变量

时间:2015-05-20 09:47:34      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:awk   shell   变量   rs   fs   


    awk中的变量定义非常简单,只需要给出一个变量名并且赋予适当的值即可。


    awk中的常规变量分为两种类型:字符串和数值。无需指定变量类型,awk会根据变量所处的环境自动判断。如果没有指定值,数值类型的变量默认等于0,字符串类型的变量默认为空。


    awk中的系统内置变量总结如下,有一点要事先说明:awk说明中,记录表示一个样本,字段表示特征。


变量 说明
$0 记录变量,表示当前正在处理的记录,整条记录作为一个字符串
$n 字段变量,n可以为1,2,...表示第几个字段(特征)
NF 整数值,表示当前记录的字段数
NR 整数值,表示awk已经读入的记录数
FILENAME 正在处理的文件名
FS 字段分割字符,默认是空格或是tab
RS 记录分隔符,默认是换行符


说明:$0是当前处理的一整条记录(包含多个字段),而且作为字符串处理;上面已经用过$2;FS和RS比较有用,下面单独说明。


    RS是文件中记录换行的标识,默认为\n换行符,但是有些文件不是用换行来记录的,这个时候需要自己设置。注意设置的时候最好使用BEGIN匹配模式,还记得吗?BEGIN模式优先于所有处理文件之上执行,我们必须先设置换行标识,然后再处理文件。

#-----------------------------/chapter11/ex11-14.sh------------------
#! /bin/awk -f
   
BEGIN {
     #定义记录分隔符
     RS=""
   }
   
   {
      print
      print "=========================================="
   }
  

上面定义字段换行标识符FS为空字符串,即把空白行作为换行。


    FS是文件中的字段分隔标识符,默认是空格或制表符tab,实际上我们可能使用其他的字符。我们同样在BEGIN匹配模式中指定。

#-----------------------------/chapter11/ex11-15.sh------------------
#! /bin/awk -f

BEGIN {
   #定义记录分隔符
   RS=""
   #定义字段分隔符
   FS="\n"
}
#输出第1个字段
{ print $1 }

看到了吧,输出每个字段的使用$n,定义的是换行为字段分隔符。


参考:

《Shell从入门到精通》

awk中的变量

标签:awk   shell   变量   rs   fs   

原文地址:http://blog.csdn.net/puqutogether/article/details/45865865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!