awk中的变量


    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从入门到精通》

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值