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

二.AWK内置变量

时间:2017-10-22 21:52:10      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:变量   重置   增加   完全   指定   处理   一个   基础   传递   

1. FS 输入字段分隔符

awk默认的字段分隔符是空格,如果你的输入文件中不是以空格作为字段分隔符, 那么你可以使用-F参数来指定分隔符。例如

awk -F, ‘/pattern/ {action}‘ input-file

你也可以设置内置变量FS来完成,FS内置变量只能在BEGIN区域使用。

awk ‘BEGIN {FS=","} {print $2, $3}‘ input-file

 

当你遇到包含多种字段分隔符时,不用担心,FS完全能搞定,比如:

awk ‘BEGIN {FS="[,:;]"} /pattern/ {action}‘ 

上面这条命令指定了字段分隔符时逗号,冒号,分号。

 

2. OFS 输出字段分隔符

FS是输入字段分隔符,OFS是输出字段分隔符。OFS会被打印在输出行的连续两个字段之间。默认情况下,awk会以空格作为输出字段分隔符

例如:

awk -F, ‘BEGIN {OFS=":"} /pattern/ {action}‘ input-file

上面这行代码指定了输出字段分隔符为冒号。

 

请注意print语句中使用逗号和不使用分号的区别:

使用逗号,则awk在字段之间使用OFS作为输出字段分隔符;

如果不使用分号,则不会使用OFS作为输出字段分隔符;

 

3.RS 记录分隔符

awk默认的记录分隔符是换行符,我们也可以指定记录分隔符,例如:

awk -F, ‘BEGIN {RS=";"} /pattern/ {action}‘ input-file

上面这行代码中,设置分号作为记录分隔符,那awk就会把分号作为每行直接的分隔符。

 

4.ORS输出记录分隔符

RS是出入记录分隔符,ORS是输出记录分隔符。awk默认使用换行符作为输出记录分隔符。

 

5.NR 记录序号

NR变量非常有用,在循环内部标识记录序号。在END区域时,代表输入文件的总记录数

 

6.FILENAME当前记录的文件名

当使用awk处理多个输入文件时,FILENAME就显得非常有用,它代表awk当前正在处理的文件。

 

7.FNR 当前文件的NR

NR代表当前awk处理的记录的行号, 在给awk传递两个文件时,NR会在多个文件中持续增加,当处理到第二个文件时,NR不会被重置为1, 而是在前一个文件的NR基础上继续增加。

FNR则只代表当前文件正在处理的记录的行号,不会在第二个文件中继续增加, 当处理到第二个文件时,会重置为1

 

二.AWK内置变量

标签:变量   重置   增加   完全   指定   处理   一个   基础   传递   

原文地址:http://www.cnblogs.com/NewMan13/p/7710884.html

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