linux——awk(3):awk变量

对于awk来说,变量分为“内置变量”和“自定义变量”。内置变量就是awk预先定义好的,内置在awk内部的变量,而自定义变量就是用户定义的变量。

awk常见的内置变量:

FS:输入字段分隔符,默认为空白字符

OFS:输出字段分隔符,默认为空白字符

RS:输入记录分隔符(输入换行符),指定输入时的换行符

ORS:输出记录换行符(输出换行符),输出时指定符号代替换行符

NF:number of field,当前行的字段的个数(即当前行被分割成了几列),字段数量

NR:行号,当前处理的文本行行号。

FNR:各文件分别计数的行号

FILENAME:当前文件名

ARGC:命令行参数的个数

ARGV:数组,保存的是命令行所给定的各个参数

 

1.内置变量NR

如上所示,NR是行数,NF是列数,test1文件中,第一行有4个字段,默认分隔符为空格,所以NF(列数)为4.第二行有5列。FILENAME为文件名,FNR为每个文件中的行数序号,test1中有两行,test文件中也有两行,NR则是不分文件计行数,两个文件一共四行,最后print出当行所有数据。

在awk中,只有在引用$0,$1等内置变量的值的时候才会用到“$”,引用其他变量时,不管是内置变量,还是自定义变量都不使用“$”,而是直接使用变量名。

2.内置变量RS

RS是输入行分割符,默认“行分隔符”就是“回车换行”。如果我们想要把空格作为行分割符,让awk认为每遇到一个空格就换一次行。示例如下:

如上所示,在第四行时ddd之后换行,但是在awk眼中,空格才是换行,所以下面的8ua在awk眼中还是属于第四行。

3.ORS:输出行分隔符

如下所示,我们把“+++”设定为换行符,由下可知,虽然第一行第二行都是在一行中,但是在awk眼中,它是有两行的,可见行号跟“+++”换行符。

4.内置变量ARGC与ARGV

注,第一个参数是awk本身。

5.自定义变量:即用户定义的变量

方法一:-v varname=value 变量名区分字符大小写

方法二:在program中直接定义。

注:变量定义与动作之间需要用分号”;“隔开。

参考:http://www.zsythink.net/archives/1374

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值