awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等
awk常用内置变量如下几种:
FS:输入单词分隔符,默认是空格
OFS:输出单词分隔符,默认是空格
RS:指定输入时候的换行符(awk是一行行处理数据的)
ORS:指定输出的符号,替代换行符(awk以换行符区别一条数据)
NF:一条数据单词的个数,常用来输出最后一个单词
NR:处理当前文本行的行号
FNR:各文件分别记录的行号,awk处理多个文件时候,显示多个文件的行号
FILENAME:当前文件名
ARGC:命令行参数的个数
ARGV:数组,保存的是命令行所给定的各参数
内置变量(个别示例)
- FNR 同时显示多个文件的当前行的行号
RS 替换输入换行符
awk默认是使用换行符,一次读取一条记录,然后再以空格分割单词进行数据处理的,如果我们想要让awk以其他的符号,比如说空格表示换行符,从而让他区别一条记录,就可以使用RS变量
ORS 替换输出换行符
有了RS的基础,ORS就很好理解了ARGV和ARGC
ARGV表示的是一个数组,数组保存了保存了命令行的参数,数组有些特殊,下标是从0开始,只不过ARGV[0]表示的就是awk
awk 'BEGIN{print ARGV[1]}' test1 test2
自定义变量
方法一:-v xxx=”xxx”
方法二:在program中定义
awk -v test="hello worl" 'BEGIN{print test}'
awk 'BEGIN{test="hello world";print test}' //中间用分号隔开