linux之grep使用技巧

【linux之grep使用技巧】枕上诗书闲处好,门前风景雨来佳。这篇文章主要讲述linux之grep使用技巧相关的知识,希望能为你提供帮助。
显示不以#开头的行

> 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" *

递归查找目录下所有文件,并只输出含有该文本的文件路径
> grep -rl "rumenz" .

grep静默输出
> grep -q "rumenz" 1.txt

除开某一个目录不匹配
> grep -R --exclude-dir="tmp" "rumenz"

去掉文本中的空行
> 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
微信公众号:入门小站

    推荐阅读