如何用awk从Apache日志筛选含指定目录的404响应IP
修改awk命令筛选含特定目录片段的404请求IP
直接在原有awk条件中添加路径匹配规则即可,以下是修改后的完整命令:
awk '($7 == "404") && ($6 ~ /large/) {print $1, $5}' /var/log/404.log | sort -n > ip.list
关键说明:
&& ($6 ~ /large/)是新增的筛选逻辑:~是awk的正则匹配运算符,用来判断字段是否符合指定规则/large/会检查第6个字段(请求路径)中是否包含"large"字符串片段,完全适配你提供的动态路径示例(/clothes/shirts/large/thefantom.html?color=red)
扩展场景调整:
- 精确匹配独立目录:如果要避免匹配类似
larger这类包含"large"的字符串,只匹配作为独立目录的/large/,可以修改正则:awk '($7 == "404") && ($6 ~ /\/large\//) {print $1, $5}' /var/log/404.log | sort -n > ip.list - 忽略大小写匹配:如果需要同时匹配"Large"、"LARGE"等大小写变体,添加
IGNORECASE变量:awk -v IGNORECASE=1 '($7 == "404") && ($6 ~ /large/) {print $1, $5}' /var/log/404.log | sort -n > ip.list
内容的提问来源于stack exchange,提问作者Aknot
相关产品推荐
相关产品推荐

