关于linux:linux之grep使用技巧

42次阅读

共计 989 个字符,预计需要花费 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 filelist
aaa
bbb
rumenz
> grep -r "rumenz" --exclude-from filelist .

原文链接:https://rumenz.com/rumenbiji/…
微信公众号: 入门小站

正文完
 0