基本說明:
split(string, array[, field separator]) : 字串,變數名稱,分割符號(預設當前FS)
ex: 取出第二個元素,再使用":" 分割字串存成陣一列 ar ,再print 出 ar 第二個元素
1 2 |
echo "123:456 789:abc" | awk '{ split($2,ar,":"); print ar[2]}' abc |
substr(string,p[,n]): 字串,從p開始,長度為n
ex: 使用 substr 取出第二個元素, 從第3個字元開始,取1個字元
1 2 3 4 |
echo "1234 5678 9abc" | awk '{print substr($2,3)}' 78 echo "1234 5678 9abc" | awk '{print substr($2,3,1)}' 7 |
length([string]): 返回字串長度,預設為$0
ex:
1 2 3 4 |
echo "1234 5678 9abc" | awk '{print length()}' 14 echo "1234 5678 9abc" | awk '{print length($1)}' 4 |
綜合應用
處理nginx log
1.每10秒的連線計數
1 |
cat nginx.log | awk '{ print substr($4,14,7)}' | sort | uniq -c |
2.統計IP 使用 class C
1 |
cat nginx.log | awk '{ split($1,ipar,".") ; print ipar[1]"."ipar[2]"."ipar[3]".0"}' | sort | uniq -c |
(Visited 124 times, 1 visits today)