日志分析是最常见的运维场景。grep、awk、sed 是日志分析的三个核心工具。
一、grep 搜索
grep "ERROR" app.log # 搜索关键字
grep -c "ERROR" app.log # 统计出现次数
grep -v "DEBUG" app.log # 排除 DEBUG
grep -E "ERROR|WARN" app.log # 多条件或
tail -f app.log | grep "ERROR" # 实时跟踪错误
二、awk 处理列
awk '{print $1, $4}' app.log # 打印第1列和第4列
awk '{print NR, $0}' app.log # 显示行号
awk '/ERROR/{count++} END{print count}' app.log # 统计ERROR行数
awk -F: '{print $2}' /etc/passwd # 以:分隔
三、sed 编辑
sed -n '10,20p' app.log # 显示10-20行
sed -i 's/ERROR/错误/g' app.log # 替换文本
sed '/^$/d' app.log # 删除空行
四、综合:分析慢请求
# 找到所有响应时间超过 1s 的请求
awk '{if ($NF > 1000) print $0}' access.log
# 统计每种 HTTP 状态码的数量
awk '{print $9}' access.log | sort | uniq -c | sort -rn
# 统计每个IP的访问次数
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10
💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!



