功能:
Awk是一种便于使用且表达能力强的程序设计语言,可应用于各种计算和数据处理任务。AWK是一种处理文本文件的语言,是一个强大的文本分析工具。
格式:
awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
$1 代表第几列
'....{print }' ...的位置可以进行匹配 print 输出
选项:
POSIX options: GNU long options: (standard)
-f progfile --file=progfile
-F fs --field-separator=fs //分隔符
-v var=val --assign=var=val //变量赋值
Short options: GNU long options: (extensions)
-b --characters-as-bytes
-c --traditional
-C --copyright
-d[file] --dump-variables[=file]
-e 'program-text' --source='program-text'
-E file --exec=file
-g --gen-pot
-h --help
-L [fatal] --lint[=fatal]
-n --non-decimal-data
-N --use-lc-numeric
-O --optimize
-p[file] --profile[=file]
-P --posix
-r --re-interval
-S --sandbox
-t --lint-old
-V --version
内置参数
FS 输入字段分隔符,默认是空格或制表符 // 和-F差不多
OFS 输出字段分隔符,默认是空格
RS 输入记录分隔符,默认是换行符
ORS 输出记录分隔符,默认是换行符
NF 表示的是浏览记录的域的个数
$NF 表示的最后一个Field(列),即输出最后一个字段的内容
NR 统计记录编号,每处理一行记录,编号就会+1
FNR 统计记录编号,每处理一行记录,编号也会+1,与NR不同的是,处理第二个文件时,编号会重新计数。
ARGC 命令行参数数量
ARGV 命令行参数数组序列数组,下标从0开始,ARGV[0]是awk
ARGIND 当前正在处理的文件索引值。第一个文件是1,第二个文件是2,以此类推
ENVIRON 当前系统的环境变量
FILENAME 输出当前处理的文件名
IGNORECASE 忽略大小写
SUBSEP 数组中下标的分隔符,默认为" 34"
实例:
1.1 awk '{print $}' 输出第几列
1.2 输出多列用 , 隔开
1.3 '....{print }' ....位置判断案例
1.4 -F 分隔符
ip a show ens33|awk -F'[ |/]+' 'NR==3{print $3}' 同时定义两个分隔符
分开写
1.5 FS 内置参数设置分隔符
1.6 -v 重新给变量赋值
1.7 $NF 表示的最后一个Field(列)
1.8 Sum求和 +=
1.9 求平均 /
1.10 SEBIN +if判断 找出最大值
1.11 for循环 http的并发请求数与其TCP连接状态
1.12 awk 定义数组
a[i]=value
- a:数组的名称
- i:数组索引
- value:数组中元素所赋予的
创建数组 要注意点小红点的地方,
1.需要加双引号 不然会有语法错误
2. 输出 用 隔开 也要加 " "
3.print 打一个就够了