汇总起来,备忘查看!
目录
找出文件中包含指定内容的数据行
如下,查找文件a中包含hello字符串的数据行:
grep hello a
grep -i hello a
-r用来递归查找。主要用于有目录、子目录时的范围查找。
如下,查找当前目录及其子目录下中查找包含hello的文件及内容:
- #grep -ir hello ./
-
- ./a:hello
- ./a:hello.world
- ./a:Hello
- ./b:hello
如上一小节中的示例,再显示一下行号:
- #grep -irn HELLO ./
- ./a:1:hello
- ./a:2:hello.world
- ./a:6:Hello
- ./b:1:hello
-v用来取反。如下查找a文件中不包含hello的数据行:
grep -v "hello" a
找出文件中不包含指定内容的数据行数
-c计算行数。如下计算a文件中不包含hello的数据行数:
grep -cv "hello" a
文件内容如下:
- helloh
- hello.world
- 123123
- 100000.01
- world
- Hello
举例,需查找a文件中hello的单词,且不区分大小写:
- # grep -iw HELLO ./a
-
- hello.world
- Hello
如下,匹配a文件中以oh结尾的内容:
grep oh$ a
如下,匹配a文件中以he开始的内容:
grep ^he a
有时候不仅想找到指定字符串本行,还需要查看所匹配到的行的前后几行的概况。
前:-B 后:-A 前后:-C (注意都是大写)
如下,查找a文件中出现100的行以及它的前两行的内容:
grep -B 2 100 a
如下,查找a文件中出现100的及前后各两行的内容:
grep -C 2 100 a
如下,查找hello在文件a中出现的具体位置
- #grep -o -b hello a
-
- 26:100
-o :只显示匹配到的字符串
-b :显示位置
如下,将不包含hello、123的数据行显示出来
grep -iv hello a | grep -v 123
如下,当前目录下查找包含hello字符串的所有文件列表
grep -lr hello ./
grep -n '^$' ./a