NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
原文地址:[linux awk命令详解](https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html) 练习示例: 以Nginx access.log日志为例: 日志格式如下: ~~~ 127.0.0.1 - - [08/Dec/2017:09:45:10 +0800] "GET /systemManager/chargeLog/list HTTP/1.1" 500 3039 "http://ppdsp.dev/homepage/index" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" ~~~ ~~~ awk '{if($9==500){count++;printf("linenumber:%s, linecontent:%s\n", NR, $0);}} END {print "count is ", count}' /usr/local/var/logs/nginx/as.access.log ~~~ awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以`$9表示HTTP响应码`,命令使用了判断语句,同时设置了一个统计变量,NR是awk提供的一个常量,输出结果如下: ~~~ linenumber:39723, linecontent:127.0.0.1 - - [08/Dec/2017:09:45:10 +0800] "GET /systemManager/chargeLog/list HTTP/1.1" 500 3039 "http://ppdsp.dev/homepage/index" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:39725, linecontent:127.0.0.1 - - [08/Dec/2017:09:45:54 +0800] "GET /systemManager/chargeLog/list HTTP/1.1" 500 3039 "http://ppdsp.dev/homepage/index" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:40116, linecontent:127.0.0.1 - - [08/Dec/2017:11:47:18 +0800] "POST /systemManager/chargeLog/downLoad HTTP/1.1" 500 2076 "http://ppdsp.dev/systemManager/chargeLog/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:40117, linecontent:127.0.0.1 - - [08/Dec/2017:11:47:47 +0800] "POST /systemManager/chargeLog/downLoad HTTP/1.1" 500 2217 "http://ppdsp.dev/systemManager/chargeLog/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:40238, linecontent:127.0.0.1 - - [08/Dec/2017:16:17:35 +0800] "POST /systemManager/chargeLog/list?ajax=datalist HTTP/1.1" 500 1571 "http://ppdsp.dev/systemManager/chargeLog/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:41681, linecontent:127.0.0.1 - - [09/Dec/2017:15:54:56 +0800] "POST /systemManager/user/create HTTP/1.1" 500 2499 "http://ppdsp.dev/systemManager/user/create" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:41683, linecontent:127.0.0.1 - - [09/Dec/2017:15:56:00 +0800] "POST /systemManager/user/create HTTP/1.1" 500 2499 "http://ppdsp.dev/systemManager/user/create" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:42100, linecontent:127.0.0.1 - - [11/Dec/2017:09:54:35 +0800] "GET /adManager/creativeReview/view?id=8 HTTP/1.1" 500 2154 "http://ppdsp.dev/adManager/creativeReview/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:42540, linecontent:127.0.0.1 - - [11/Dec/2017:15:41:48 +0800] "POST /adManager/creativeReview/campaignSelectlist?aycallback=__jsonpCallback1512978106083i0 HTTP/1.1" 500 2245 "http://ppdsp.dev/adManager/creativeReview/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:42541, linecontent:127.0.0.1 - - [11/Dec/2017:15:42:04 +0800] "POST /adManager/creativeReview/campaignSelectlist?aycallback=__jsonpCallback1512978106083i1 HTTP/1.1" 500 2245 "http://ppdsp.dev/adManager/creativeReview/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" linenumber:42779, linecontent:127.0.0.1 - - [12/Dec/2017:11:53:16 +0800] "GET /systemManager/chargeLog/list HTTP/1.1" 500 1570 "http://ppdsp.dev/adManager/creativeReview/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-" count is 395 ~~~