🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 介绍 **Awk是为高级文本处理而设计的通用脚本语言。** Awk一次对一条记录进行操作,直到到达输入的末尾。记录由一个称为记录分隔符的字符分隔。默认的记录分隔符是换行符,这意味着文本数据中的每一行都是一个记录。 ## 命令组成 ``` pattern { action } ``` 模式或动作,使用二者是二选一的。模式-动作语句中的模式或动作(但不是同时两者)都可以省略。 ### 只有模式没有动作 ``` $ awk '$1 == "125.39.45.236"' tinywan.busionline.com.access.log 125.39.45.236 - - [23/Apr/2021:14:45:47 +0800] "GET / HTTP/1.1" 404 549 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9b4) Gecko/200803 ``` > 以上会匹配打印出nginx日志的一行所有内容 ### 只有动作没有模式 ``` $ awk '{print $1, $4,$5}' tinywan.busionline.com.access.log 112.17.161.4 [14/Apr/2021:17:38:30 +0800] 112.17.161.4 [14/Apr/2021:17:39:10 +0800] 203.119.241.116 [14/Apr/2021:17:39:20 +0800] ... ``` > 会打印出好多行 > 由于模式和动作两者任一都是可选的,所以需要使用大括号包围动作以区分于其他模式。