写点什么

linux 之 grep 使用技巧

作者:入门小站
  • 2022 年 5 月 18 日
  • 本文字数:836 字

    阅读完需:约 3 分钟

显示不以 #开头的行

> grep ^[^#] rumenz.txt
复制代码

显示 #开头的行

> grep ^# rumenz.txt
复制代码

从单个文件查找指定字符串

> grep "rumenz" 1.txt
复制代码

从多个文件查找指定字符串

> grep "rumenz" *.html
复制代码

忽略大小写, 并显示行号

> grep -in "rumenz" 1.txt
复制代码

显示查找到的总行数

> grep -c "rumenz" 1.txt
复制代码

查找目录下所有文件,并只输出含有该文本的文件名

> grep -l "rumenz" *
复制代码


-l: 查询多文件的时候只输出包含匹配字符的文件名

递归查找目录下所有文件,并只输出含有该文本的文件路径

> grep -rl "rumenz" .
复制代码

grep 静默输出

不会输出任何信息,如果命令运行成功返回 0,失败则返回非 0 值。一般用于条件测试。


> grep -q "rumenz" 1.txt
复制代码

除开某一个目录不匹配

> grep -R --exclude-dir="tmp" "rumenz"
复制代码


tmp 中的文件不用查找

去掉文本中的空行

> cat 1.txt | grep -v "^\s*$"
复制代码

过滤注释行

> cat 1.txt | grep -v "^#"
复制代码

同时过滤空白行与注释行

> cat 1.txt | grep -v "^$" | grep -v "^#"
复制代码

打印匹配行的后 5 行

> grep -A 5 'rumenz' 1.txt
复制代码

打印匹配行的前 5 行

> grep -B 5 'rumenz' 1.txt
复制代码

打印匹配行的前后 5 行

> grep -C 5 'rumenz' 1.txt
复制代码

模糊匹配

> grep "abc" 1.txt //结果为abcd, abcde, abc等
复制代码

精确匹配

> grep -w "abc" 1.txt
复制代码

同时匹配多个字符串

> cat 1.txt | grep -e "ab" -e "ef" -o
复制代码


  • -e 指定字符串作为查找文件内容的关键字符

  • -o 只输出文件中匹配到的部分, 不会打印多余的内容。

只在目录中所有的.php 和.html 文件中递归搜索字符"rumenz"

> grep -r "rumenz" --include *.{html,php}
复制代码

在搜索结果中排除所有 README 文件

>  grep -r "rumenz"  --exclude "README" .
复制代码

在搜索结果中排除 filelist 文件列表里的文件

> cat filelistaaabbbrumenz> grep -r "rumenz" --exclude-from filelist .
复制代码


原文链接:https://rumenz.com/rumenbiji/linux-grep-skills.html微信公众号:入门小站


  • 回复【1001】获取 linux 常用命令速查手册

  • 回复【10010】获取 阿里云 ECS 运维 Linux 系统诊断

  • 回复【10012】获取 Linux 学习笔记【强悍总结值得一看】

  • 回复【10013】获取 shell 简明教程



发布于: 刚刚阅读数: 3
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
linux之grep使用技巧_Linux_入门小站_InfoQ写作社区