Linux 文本三剑客:grep、sed、awk 一次讲清

举报
yd_283162409 发表于 2026/11/01 07:38:36 2026/11/01
【摘要】 处理 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)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。