awk如何使用
簡單文本處理中,功能強大的awk命令。下文詳細描述使用方法與示例:
語法:
awk [選項參數] 'script' var=value file(s)
或
awk [選項參數] -f scriptfile var=value file(s)
查看最新的訪問日誌
$ tail -n 50000 /data1/logs/nginx/access.log
0.012 0.012 10.135.12.135 508 127.0.0.1:9001 12/Oct/2019:10:49:17 +0800 aaadns.com POST /api/pro HTTP/1.0
tail
查看文件結尾
tail -n 50000
查看文件倒數5萬條記錄
正則匹配訪問url 包含字符串
$ awk '{if($10~/separation/) {print substr($10,0,80)}}'
$0
表示整行記錄
$10
/api/pro 以空格分隔的第10個字符串
if ($10~/separation/)
正則匹配第10個字符串是否包含separation
substr($10, 0, 80)
取第10個字符串中0到80個字符
url以特定字符分隔
$ awk '{split($0,a,"?"); print a[1]}
split($0,a,"?")
$0表示輸入的字符串,將輸入字符串以?分隔,結果保存在a變量中
統計所有url的訪問次數
tail -n 50000 /data1/logs/nginx/access.log | awk '{if($10~/separation/) {print $10}}' | awk '{split($0,a,"?"); print a[1]}' |sort |uniq -c
13 /separation/business/getBusin****
94 /separation/house/com**
13 /separation/house/de**
4 /separation/housedetail/click***