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}'