AWK的内置变量

ARGC: number (2) 在命令行提供的参数的个数,不包括命令awk
ARGIND: number (0) 当前文件中正在处理的 ARGV 数组的索引值。 文件的位置,从1开始计数.一个文件处在1号位.第2个文件处在2号位.
ARGV: array, 2 elements 存储命令行输入参数的数组,如:["awk","{print}","1","2"]
BINMODE: number (0)
CONVFMT: string ("%.6g") 数据转换为字符串的格式
ENVIRON: 与环境变量相关的关联数组变量, ENVIRON["USER"]
ERRNO: number (0) 存储当 getline 重定向失败或者 close 函数调用失败时的失败信息
FIELDWIDTHS: string ("") 表示一个分割域之间的空格的宽度。当此变量被设置后, GAWK 将输入的域之间的宽度处理为固定宽度,而不是使用 FS 的值作为域间的分割符。
FILENAME: string ("") 当前文件名称,只能应用在结束块,在开始块中FILENAME未定义.
FNR: number (0) 该变量与 NR 类似,不过它是相对于当前文件而言的。此变量在处理多个文件输入时有重要的作用。每当从新的文件中读入时 FNR 都会被重新设置为 0。 当前文件的第几行,切换文件时,从1开始从新计数.
FS: string (" ") 输入的数据域之间的分隔符,其默认值是空格。 你可以使用 -F 命令行选项改变它的默认值
IGNORECASE: number (0) 当此变量被设置后,GAWK将变得大小写不敏感。awk 'BEGIN{IGNORECASE=1} /amit/' marks.txt
LINT: number (0)
NF: number (0) 当前输入记录中域的数量。当前行有多少列.从1开始计数.当新行输入时,清零.
NR: number (0) 当前记录的数量.当前行是第几行.从1开始计数
OFMT: string ("%.6g") 数值<<输出>>的格式
OFS: string (" ") <<输出>>域之间的分割符,其默认为空格
ORS: string (" ") <<输出>>记录(行)之间的分割符,其默认值是换行符
PROCINFO 这是一个关联数组变量,它保存了进程相关的信息。比如, 真正的和有效的 UID 值,进程 ID 值等等awk 'BEGIN { print PROCINFO["pid"] }'
RLENGTH: number (0) 表示 match 函数匹配的字符串长度。AWK 的 match 函数用于在输入的字符串中搜索指定字符串.awk 'BEGIN { if (match("One Two Three", "re")) { print RLENGTH } }'
RS: string (" ") 输入记录的分割符,其默认值为换行符。
RSTART: number (0) 表示由 match 函数匹配的字符串的第一个字符的位置。awk 'BEGIN { if (match("One Two Three", "Thre")) { print RSTART } }'
RT: string ("")
SUBSEP: string ("34") 数组下标的分割行符,其默认值为 34 。
TEXTDOMAIN: string ("messages")

$0 表示整个输入记录。当前整行文字字符串.
$n 表示当前输入记录的第 n 个域,这些域之间由 FS 分割。 当前行的第n段.

原文地址:https://www.cnblogs.com/keystone/p/12987339.html