日常使用 nohup 运行后台任务时,最让人头疼的莫过于退出终端后无法实时查看输出日志。其实 nohup 已经替我们考虑到了这一点——它会默认将输出内容自动写入 nohup.out 日志文件。但随之而来的问题是:当日志信息越积越多,如何快速从海量记录中定位到关键内容?

别担心,Linux 下几款经典文本处理工具——grep、awk、sed——正是解决这类问题的利器。下面直接分享几个常见场景的实战案例,看完就能上手操作。
基础过滤:按关键词搜索行
最基础的需求,就是查看日志中哪些行包含“error”、“success”等特定词汇。一条 grep 命令即可搞定:
grep "关键字" nohup.out
如果希望同时显示行号,便于后续定位上下文,可以加上 -n 参数:
grep -n "关键字" nohup.out
有时需要匹配多个关键词(比如“error”或“warning”),使用 -E 开启扩展正则表达式,用竖线分隔即可:
grep -E "关键字1|关键字2" nohup.out
结构化提取:按列或条件筛选
当日志采用结构化格式(例如空格或制表符分隔)时,awk 堪称神器。比如只想查看第二列的数据:
awk '{print $2}' nohup.out
更进一步,如果只需要提取第二列数值大于 100 的行,可以这样操作:
awk '$2 > 100' nohup.out
反向操作:删除不需要的行
有时我们想排除干扰信息,比如去掉所有包含“debug”的行。用 sed 的删除命令,效率非常高:
sed '/关键字/d' nohup.out
组合使用才是关键
在实际工作中,经常需要将多个工具串联起来协同使用。例如先用 grep 筛选出包含“timeout”的行,再通过 awk 提取时间戳列,最后用 sed 清理多余的空格。不过以上几个基本技巧已经能覆盖大多数场景,根据你的实际日志格式灵活搭配即可。
