grep常见的用法

简介: grep常见的用法

命令格式


grep [options] “string to find” filename


  • “string to find” :为要匹配的模式,可以是字符串、也可以是正则表达式


  • filename:为要查找的文件名。可以是多个文件或者目录


常见选项


  • -i:忽略字符大小写


  • -v:取反,即输出不匹配的那些文本行


  • -n:输出行号


  • -l:输出能匹配模式的文件名。-L相反


  • -q:静默输出


  • -r:递归查找


  • -c:计算匹配成功的行数


  • -E:使用正则表达式匹配


  • -o:只输出文中匹配的部分


  • -A:显示匹配行及前几行。(A3表示匹配行及前3行)


  • -B:显示匹配行及后几行。(B3表示匹配行及后3行)


  • -C:显示匹配行及前后几行。(C3表示匹配行及前后3行)


  • –include:指定需要搜索的文件


  • –exclude:排除需要搜索的文件


  • –exclude-dir:排除需要搜索的目录


  • –color=auto:标记匹配颜色


常见用法


  • grep -rni “xxx” filename/dir (在filename中递归查找字符串xxx,同时输出行号)

grep -rni "hello" test
test/test1.c:5: printf( "hello world");
test/test2.C:5: printf( "Hello world"');

  • grep -c “xxx” filename (统计文件中能够匹配的行数)


grep -c "hello" test1.c test2.c
test1.c:1
test2.c:1
grep -ci "hello" test1.c test2.c
test1.c:1
test2.c:0


  • 指定/排除需要搜索的文件(–include,–exclude,–exclude-dir)


grep -r "hello" ./test --include=*.{c,cpp}//搜索test目录中的.c和. cpp文件中含有hello的行
test/test1.c: printf ("hello world");
test/test3.cpp: printf("hello world");
grep -rni "hello" ./test --include=*.{c,cpp}
test/test1.c:5: printf("hello world");
test/test3.cpp:5: printf ( "hello world");
test/test2.c:5: printf( "Hello world");


grep -r "hello" ./test --exclude="readme"//忽略readme文件


grep -r "hello" ./test --exclude-dir=".git"/ /忽略.git目录


  • grep -o “xxx” filename(只输出文中匹配到的文本)


grep -ro "hello" ./test --include=*.{c,cpp}
test/test1.c:
test/test3.cpp:hello


  • grep -l “xxx” filename1 filename2 … (搜索多个文件中的字符串,并标记文件名)


grep -rl "hello" ./test --include=*.{c,cpp}
test/test1.c
test/test3.cpp
相关文章
|
6月前
|
Unix
grep的基本用法
grep的基本用法
55 2
|
6月前
|
Perl
grep的复杂用法
grep的复杂用法
57 3
|
6月前
|
Unix Linux
grep的实战用法
grep的实战用法
52 4
|
6月前
|
Unix Linux
grep的具体用法
grep的具体用法
72 1
|
弹性计算 Shell Linux
3天玩转shell--6.sed 和grep用法
本文将通过shell代码示例,简单通俗的讲解shell。通过执行代码和运行结果反向掌握shell编程方法。准备一台低配的阿里云ECS Linux环境,跟着教程走起,本文比较适合shell小白。
198 0
|
索引
$.grep() 的用法
$.grep() 的用法
345 0
$.grep() 的用法
|
机器学习/深度学习 Shell
|
存储 Unix Linux