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,再带上两三个选项,问题就解决了。

相关推荐
黑科技iOS上架10 小时前
ReactNative入门介绍
经验分享·ios
智塑未来11 小时前
鸿蒙系统对比安卓、iOS,核心优势是什么?
android·ios·harmonyos
初雪云13 小时前
iOS 上架入门:证书、描述文件、IPA 上传到底是什么关系?
android·ios·自动化·产品经理·iphone
狂热开发者15 小时前
用 Typeoff 把会后口述整理成 Markdown 决策记录
人工智能·windows·macos·ios·安卓
2501_9159184117 小时前
PerfDog 太贵?iOS 性能监控工具的功能对比与选择
android·ios·小程序·https·uni-app·iphone·webview
猎人在吃肉1 天前
Notepad++ 快捷键配置文件的导入和导出
notepad++·导出·快捷键·导入·配置文件
MDM.Plus1 天前
苹果MDM技术演进:从远程控制到设备信任体系的构建
运维·服务器·安全·ios·mdm·手机店
韩曙亮2 天前
【Flutter】Flutter 进程保活 ③ ( 屏幕常亮设置 | Flutter 禁止息屏、关闭自动锁屏、屏蔽系统屏保 )
android·flutter·ios·屏幕常亮·禁止息屏
2501_915909062 天前
IPA 深度混淆是什么意思?从混淆强度到实际效果的解读
android·ios·小程序·https·uni-app·iphone·webview
apihz2 天前
经纬度制作高清卫星图片免费 API 接口详解
开发语言·ios·swift