linux之grep使用技巧

举报
入门小站 发表于 2022/05/18 20:31:10 2022/05/18
【摘要】 显示不以#开头的行> grep ^[^#] rumenz.txt 显示#开头的行> grep ^# rumenz.txt 从单个文件查找指定字符串> grep "rumenz" 1.txt 从多个文件查找指定字符串> grep "rumenz" *.html 忽略大小写, 并显示行号> grep -in "rumenz" 1.txt 显示查找到的总行数> grep -c "rumenz" ...

显示不以#开头的行

> 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 filelist
aaa
bbb
rumenz
> grep -r "rumenz" --exclude-from filelist .

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

  • 回复【1001】获取 linux常用命令速查手册
  • 回复【10010】获取 阿里云ECS运维Linux系统诊断
  • 回复【10012】获取 Linux学习笔记【强悍总结值得一看】
  • 回复【10013】获取 shell简明教程

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。