AWK 的高阶用法:聊聊它那些看似复杂却超实用的案例
提到 AWK,你可能首先想到的是它简单好用的字段提取功能,比如 awk '{print $1}'
。但你知道吗?AWK 不只是个“切水果刀”,还是个可以搞定复杂任务的“多功能瑞士军刀”!今天,我们就用轻松的语气,聊聊 AWK 在实际工作中的一些高阶玩法。希望通过这些案例,能让你对它刮目相看!
1. 日志分析:统计 HTTP 状态码的次数
想象一下,你正在查看服务器的日志文件 access.log
,内容如下:
192.168.1.1 - - [10/Jan/2025:14:00:01] "GET /index.html HTTP/1.1" 200 233
192.168.1.2 - - [10/Jan/2025:14:05:01] "POST /login HTTP/1.1" 200 512
192.168.1.3 - - [10/Jan/2025:14:10:01] "GET /about.html HTTP/1.1" 404 128
192.168.1.4 - - [10/Jan/2025:14:15:01] "GET /contact.html HTTP/1.1" 500 256
192.168.1.5 - - [10/Jan/2025:14:20:01] "GET /index.html HTTP/1.1" 200 300
现在,你的任务是统计每种 HTTP 状态码(比如 200
, 404
, 500
)出现的次数。怎么搞?
来一行 AWK:
awk '{codes[$9]++} END {for (code in codes) print code, codes[code]}' access.log
解读一下&#x