awk命令函数
1)概念:一个强大的文本分析工具,awk把文件逐行地读入,以空白字符为默认分隔符将每行进行切片,而后对这些切片进行分析和处理。 2)说明: 1)awk会针对文件(或数据流)中的每行文本执行程序脚本。 2)每行文本中,数据切片是经过分隔符进行划分的,分隔符默认为:任意的空白字符(空格或制表符)。 3)awk在读取一行文本时,会用分隔符将每行数据进行切片,并自动给一行中的每一个数据切片分配一个变量: $0 表明整个文本行 $1 表明文本行中的第1个数据切片 $2 表明文本行中的第2个数据切片 $n 表明文本行中的第n个数据切片 $NF 表明文本行中最后的那个数据切片 3)格式: awk [参数] 'awk程序脚本' filename 4)参数: -F 分隔符 # awk -F ':' 指定分隔符为冒号 5)函数: print:打印数据 1)参数能够是变量、数值、字符串 2)字符串必须用双引号包起来,参数用逗号分隔。 6)举例: awk '{print $2$3$4$5}' dumpFile1 # 大括号{} 用于根据特定的模式(pattern)对一系列的指令(action)进行分组。 grep getXxx catalina.out.2000-05-16 | grep delay | awk -F '\\|\\|' '{print $3 "--" $9}' 7)经常使用: # 求最大值 .. | awk 'BEGIN {max = 0} {if ($1 > max) max=$1} END {print "Max=", max}' # 求最小值 .. | awk 'BEGIN {min = 1000000} {if ($1 < min) min=$1} END {print "Min=", min}' # 求平均值 注:NR表示awk开始执行程序后所读取数据的行数 .. | awk '{sum+=$1} END {print "Avg=", sum/NR}'