Ubuntu下grep配合管道用的几个场景

grep在命令行里干的最多的事,就是跟管道符一起用。前一个命令甩出一堆输出,你不想全看,只想揪出几行跟自己有关的,这时候就 | grep 关键词,简单直接。

基本格式不用多说,命令1 | grep '搜索词'。虽然 grep 本身也能直接读文件,但管道让它跟其他命令拼起来之后,能干的活就多了很多。

举个例子,查进程的时候,我习惯直接 ps aux | grep 'apache2'。它会把所有正在跑的进程里带 apache2 字样的行都列出来。注意这条命令本身也会出现在结果里,因为 grep 进程的命令行里也包含了 'apache2',这个不用慌,有时候反而能帮你确认命令确实执行了。

翻目录也是类似套路。ls -l | grep 'txt' 能把当前目录下文件名包含 txt 的行过滤出来。

如果目录文件特别多,ls -l 的输出刷屏,加个 grep 立马清净。

多个 grep 还能串联。比如去 /etc/passwd 里捞用户信息的时候:

cat /etc/passwd | grep 'root' | grep -v 'nologin'

先筛出带 root 的行,再从里面把 shell 是 nologin 的给剔掉。这种一层一层缩小范围的方式,遇到杂乱的文本时很好用。

说到选项,有几个用得比较多。

-i 忽略大小写,有时候日志里一会大写一会小写,不加这个就容易漏。-v 是反向匹配,上面那个例子里就用到了。-n 带上行号,对看代码或配置文件很方便,能直接定位到第几行。-r 递归搜目录,不想一个个文件去翻的时候,直接 grep -r 'word' directory

-l 只出文件名,不显示具体匹配内容,适合找哪些文件里提到了某个词。-c 直接给计数,想知道出现了多少次的时候用。

证书过期导致网站报红,这种低级失误不该发生。来此加密提供多维度的监控提醒服务,支持短信、邮件预警,更有微信小程序方便随时随地查看证书状态。在证书到期前,会多次主动触达,确保对每一张证书的生命周期都尽在掌握。

-w 是匹配整个单词,比如你想搜 'port' 但不想把 'report' 也带出来,就加上它。-x 匹配整行,要求行内容完全等于你的模式。

-e 可以指定多个模式,一条命令同时搜好几个词。-f 从文件里读模式,量大的时候就不用都写在命令行里了。

正则表达式部分,如果只是简单搜几个固定的词,基础用法就够。需要"或者"关系的时候,-E 启用扩展正则会顺手一些,比如 grep -E 'pattern1|pattern2' filename

有个点值得留意:管道前面的命令如果输出不是纯文本,比如二进制流或者带特殊控制字符,grep 可能会给出奇怪的结果。

虽然通常碰到的场景输出都是文本,但偶尔遇到乱码或匹配不到的时候可以往这个方向排查一下。

压缩文件里搜索,别解压再搜,zgrep 直接能用。像是翻旧日志:zgrep -i error /var/log/syslog.2.gz,省时间。

这些组合其实都不复杂,用熟了之后很多操作都是手指头的肌肉记忆。真正常用到的高级技巧也没那么多,大部分时候就是管道接 grep,再带上两三个选项,问题就解决了。

相关推荐
人月神话-Lee12 小时前
【图像处理】框架设计——协议、值类型与工程化思维
图像处理·人工智能·ios·设计模式·架构·ai编程·swift
何乐乐13 小时前
【Taro 5.0 技术与实践】 - 高性能 iOS 渲染层与 TaroUI 跨端框架介绍
android·前端·ios
人月神话Lee13 小时前
【图像处理】框架设计——协议、值类型与工程化思维
ios·架构·图像识别
Digitally14 小时前
适用于 iPhone 的 iTunes 替代方案
ios·iphone
二蛋和他的大花15 小时前
高德地图 Flutter 插件:跨 Android / iOS / HarmonyOS 的完整实现
android·flutter·ios
巴博尔1 天前
UNIAPP中NVUE页面 动画
android·前端·javascript·ios·uni-app
2601_955767421 天前
圆偏振光膜与AR抗反射膜原理评测:scinique双护技术如何实现“一柔一清”?
ios·ar·iphone·圆偏振光·磁控溅射
人月神话-Lee1 天前
【图像处理】图像导出与工业级压缩策略——从像素到文件的最后一公里
图像处理·人工智能·ios·ai编程·swift
UXbot1 天前
无需设计经验也能做原型:AI辅助工具功能评测
前端·人工智能·低代码·ui·ios·交互