linux grep操作汇总

发布时间:2024年01月01日

?汇总起来,备忘查看!

目录

1,找指定文本

2,查找时不区分大小写

3,在指定命令下递归查找

4,查找时显示字符串在文件中的行号

5,取反:找出文件中不包含指定内容的数据行

6,计算指定文本出现的行数

7,匹配完整单词

8,匹配以xx开始/结尾的内容

9,匹配指定字符串的前/后/前后指定几行的内容

10,显示匹配的字符串在文件中的具体位置

11,多个grep匹配

12,按匹配的内容显示所有匹配到的文件(名称)

13,找出文件中空白行的行号


1,找指定文本

找出文件中包含指定内容的数据行

如下,查找文件a中包含hello字符串的数据行:

grep hello a

2,查找时不区分大小写

grep -i hello a

3,在指定命令下递归查找

-r用来递归查找。主要用于有目录、子目录时的范围查找。

如下,查找当前目录及其子目录下中查找包含hello的文件及内容:

#grep -ir hello ./

./a:hello
./a:hello.world
./a:Hello
./b:hello

4,查找时显示字符串在文件中的行号

如上一小节中的示例,再显示一下行号:

#grep -irn HELLO ./
./a:1:hello
./a:2:hello.world
./a:6:Hello
./b:1:hello

5,取反:找出文件中不包含指定内容的数据行

-v用来取反。如下查找a文件中不包含hello的数据行:

grep -v "hello" a

6,计算指定文本出现的行数

找出文件中不包含指定内容的数据行数

-c计算行数。如下计算a文件中不包含hello的数据行数:

grep -cv "hello" a?

7,匹配完整单词

文件内容如下:

helloh
hello.world
?123123
100000.01
world
Hello

举例,需查找a文件中hello的单词,且不区分大小写:

# grep -iw HELLO ?./a

hello.world
Hello

8,匹配以xx开始/结尾的内容

如下,匹配a文件中以oh结尾的内容:

grep oh$ a

如下,匹配a文件中以he开始的内容:

grep ^he a

9,匹配指定字符串的前/后/前后指定几行的内容

有时候不仅想找到指定字符串本行,还需要查看所匹配到的行的前后几行的概况。

前:-B? ? ? ? 后:-A? ? ? 前后:-C ? (注意都是大写)

如下,查找a文件中出现100的行以及它的前两行的内容:

grep -B 2 100 a

如下,查找a文件中出现100的及前后各两行的内容:

grep -C 2 100 a

10,显示匹配的字符串在文件中的具体位置

如下,查找hello在文件a中出现的具体位置

#grep -o -b hello a

26:100

-o :只显示匹配到的字符串
-b :显示位置

11,多个grep匹配

如下,将不包含hello、123的数据行显示出来

grep -iv hello a | grep -v 123

12,按匹配的内容显示所有匹配到的文件(名称)

如下,当前目录下查找包含hello字符串的所有文件列表

grep -lr hello ./

13,找出文件中空白行的行号

grep -n '^$' ./a

文章来源:https://blog.csdn.net/HYZX_9987/article/details/135219959
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。