awk 文件截取过滤参数

功能:

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 打一个就够了 

原文地址:https://www.cnblogs.com/gaiting/p/12165180.html