Linux 文本三剑客:grep、sed、awk 一次讲清
【摘要】 处理 Linux 文本时,grep、sed、awk 是绕不开的三件工具。它们分工很清楚:grep 负责找,sed 负责改,awk 负责算。先把分工记牢,再谈具体用法,就不容易混。grep 是过滤器。grep -r “error” /var/log 可以递归翻日志;加上 -n 显示行号,-i 忽略大小写,-A 3 还能把命中行后三行一起带出来,查报错上下文特别顺手。记住一点:grep 只找不改...
处理 Linux 文本时,grep、sed、awk 是绕不开的三件工具。它们分工很清楚:grep 负责找,sed 负责改,awk 负责算。先把分工记牢,再谈具体用法,就不容易混。
grep 是过滤器。grep -r “error” /var/log 可以递归翻日志;加上 -n 显示行号,-i 忽略大小写,-A 3 还能把命中行后三行一起带出来,查报错上下文特别顺手。记住一点:grep 只找不改,输出永远是原内容的子集。
sed 是流编辑器,适合批量改写。sed -i “s/old/new/g” file 会直接改文件,改之前最好先不加 -i 看一遍效果,确认无误再落盘。sed -n “10,20p” file 只打印指定行区间,拿来截取日志片段比翻整个文件快得多。
awk 是按列算的工具。awk ‘{print $1}’ access.log 可以抽第一列;awk ‘{sum+=$10} END {print sum}’ 则能把某一列加总,统计流量、耗时这类需求一行就够。awk 的精髓是 “模式 + 动作”:先定条件,再定对命中的行做什么。
三者组合起来威力更大:先 grep 缩小范围,再 awk 按列统计,最后 sed 统一改写。典型链路是 grep “500” access.log | awk ‘{print $1}’ | sort | uniq -c | sort -nr,几秒就能从日志里揪出请求最多的 IP。工具不在多,在于分工清楚、组合顺手。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)