grep、sed、awk三剑客咋入门?查日志改文件,这几个例子够用了

在服务器上干活,跟文本打交道的时间占了多半:查日志找报错、批量改配置、统计访问数据。而Linux下处理文本,绕不开三个老伙计:grep、sed、awk,江湖人称三剑客。很多人一听这三个名字就头大,觉得是程序员才学的东西。其实吧,日常运维根本不需要精通,掌握几个高频用法就够用了,剩下的用到再查。今天我就按查、改、算三个场景,给你挑最实用的例子讲。

grep sed awk教程

grep:从一堆文字里捞想要的

grep是三个里最好上手的,作用就一个:在一堆文字里找匹配的行。最常用的场景是查日志:想看error日志里今天有没有报错,grep ERROR /var/log/nginx/error.log就把所有带ERROR的行捞出来了。想忽略大小写加-i,想连上下文一起看加-A几行-B几行,想看统计数量用-c。还有个超实用的小技巧:tail -f日志文件再管道给grep,就能实时盯着某类日志刷出来,排查线上问题的时候这个组合能救命。

命令示范:grep -i error app.log(忽略大小写找error);grep -A2 Exception app.log(找到Exception连带后面两行);tail -f app.log | grep -i timeout(实时盯超时报错)。这几个够你用一阵子了。

sed:批量改文件,不发愁

sed是个流编辑器,听着玄乎,日常用的最多的就俩功能:替换和删除。批量把配置文件里的旧IP换成新IP,sed -i ‘s/旧IP/新IP/g’ 配置文件,一条命令全搞定,-i是直接改文件,g是全局替换。想删除文件里的某些行,sed -i ‘/要删的关键字/d’ 文件。sed改文件前建议先复制一份备份,改错了能还原,这习惯我吃了多少次亏才养成的。

还有个细节:sed -i不带备份直接改,新手容易误操作,稳妥起见先写sed ‘s/旧/新/g’ 文件(不加-i)跑一遍看看输出对不对,确认无误再加-i真正写入。先预览再动手,这招在批量改服务器配置的时候特别重要,手一抖改错几百行配置的教训可不少。

awk:按列切数据,统计神器

awk是三剑客里最能打的,它把每一行按分隔符切开,然后按列处理。最典型的例子是处理日志:很多日志每行都是空格分隔的字段,想提取某个字段,awk ‘{print $1}’就是取第一列,$2是第二列,以此类推。想统计日志里某个状态码出现了多少次:awk ‘{print $9}’ access.log | sort | uniq -c | sort -rn,这条组合拳能告诉你访问日志里各个状态码的分布,排障的时候特别好用。

awk默认按空格分列,想按别的分隔符就用-F参数,比如处理CSV文件awk -F’,’ ‘{print $1}’。还有更进阶的求和、条件过滤,用到再查手册就行,先把按列提取和统计玩熟,你已经超过一半的人了。

三个家伙怎么配合着用

三剑客最厉害的地方在于能串起来用:管道符|把前一个命令的输出交给下一个处理。比如排查慢请求:cat access.log | awk ‘{print $NF}’(取最后一个字段,通常是耗时)| sort -rn | head,就能把最慢的几个请求捞出来。再比如先grep出报错的IP,再sort统计谁报错最多。一个复杂的排查需求,往往就是几条简单命令的组合,这就是管道的魅力。

给新手的进阶路线图

别想着一口气把三剑客学完,那是劝退自己的节奏。我的建议是按需学:先把grep练熟,日志排查就够用了;再学sed的替换和删除,改配置不发愁;awk先会print和统计就够日常用。每学一个,就去自己的日志和配置文件上练,实战比看十遍教程管用。用熟了你会发现,很多以前要装软件、写脚本才能干的活,其实几行命令就搞定了,那感觉,还挺上瘾的。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
爱家的头像爱家
网站被CC攻击了咋办?识别特征到防御,全套应对方案在这
上一篇 2026-09-08 02:00
服务器配置买多大才够用?CPU内存带宽,这么算不花冤枉钱
下一篇 2026-09-08 03:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信