AWK命令分析

  |   0 评论   |   0 浏览

模式与操作

模式

模式可以是以下任意一种:

  • 正则表达式:使用通配符的扩展集
  • 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试
  • 模式匹配表达式:用运算符(匹配)和~!不匹配
  • BEGIN 语句块, pattern语句块, END语句块

awk常见命令

NF

NF表示字段数量,通过分隔符分割后有多少个字段

代码块

Plain Text

printf "1:2:3:4:5:4" | awk -F ":" NF==6'{print $0}'
1:2:3:4:5:4

FS

FS表示输入字段分隔符,默认为空格

代码块

Plain Text

printf "we are you " | awk 'BEGIN{FS="\t"} {print $1, $2, $3}'
we are you

RS

RS 记录分隔符变量

$n : 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。

$0 : 这个变量包含执行过程中当前行的文本内容。

ARGC : 命令行参数的数目。

ARGIND : 命令行中当前文件的位置(从0开始算)。

ARGV : 包含命令行参数的数组。

CONVFMT : 数字转换格式(默认值为%.6g)。

ENVIRON : 环境变量关联数组。

ERRNO : 最后一个系统错误的描述。

FIELDWIDTHS : 字段宽度列表(用空格键分隔)。

FILENAME : 当前输入文件的名。

NR : 表示记录数,在执行过程中对应于当前的行号

FNR : 同NR :,但相对于当前文件。

FS : 字段分隔符(默认是任何空格)。

IGNORECASE : 如果为真,则进行忽略大小写的匹配。

NF : 表示字段数,在执行过程中对应于当前的字段数。 print $NF答应一行中最后一个字段

OFMT : 数字的输出格式(默认值是%.6g)。

OFS : 输出字段分隔符(默认值是一个空格)。

ORS : 输出记录分隔符(默认值是一个换行符)。

RS : 记录分隔符(默认是一个换行符)。

RSTART : 由match函数所匹配的字符串的第一个位置。

RLENGTH : 由match函数所匹配的字符串的长度。

SUBSEP : 数组下标分隔符(默认值是34)。