grep – 文件内容搜索工具

1、简介

grep 是用于在文件中搜索包含特定模式的行。它是“Global Regular Expression Print”的缩写,它可以在文件中全局搜索正则表达式,并将匹配的行打印出来。grep 是 Linux 系统中非常常用的工具,广泛用于文本处理和数据分析。

2、基本用法

grep 的基本语法如下:

grep [选项] 模式 [文件...]
  • 模式:要搜索的字符串或正则表达式。
  • 文件:要在其中搜索模式的文件。如果未指定文件,grep 会从标准输入读取数据。

3、常用选项

  • -i:忽略大小写。

  • -v:反向匹配,即显示不匹配的行。

  • -n:显示匹配行的行号。

  • -c:只显示匹配行的总数。

  • -l:只显示包含匹配行的文件名。

  • -r:递归搜索目录中的所有文件。

  • -E:使用扩展正则表达式。

  • -o:只显示匹配的部分,而不是整行。

4、实战示例

一、 基本用法

1、 在单个文件中搜索

[root@localhost ~]# ls -l                            ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                    ### 查看file1.txt的内容
[root@localhost ~]# grep "hello" file1.txt           ### 查询文件file1.txt中“hello”所在的行

grep - 文件内容搜索工具

2、 在多个文件中搜索

[root@localhost ~]# ls -l                                 ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                         ### 查看file1.txt的内容
[root@localhost ~]# cat file2.txt                         ### 查看file2.txt的内容
[root@localhost ~]# grep "hello" file1.txt file2.txt      ### 查询文件file1.txt和file2.txt中“hello”所在的行

grep - 文件内容搜索工具

3、 忽略大小写

[root@localhost ~]# ls -l                                 ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                         ### 查看file1.txt的内容
[root@localhost ~]# grep -i "HELLO" file1.txt             ### 忽略大小写,查询文件file1.txt中“hello”所在的行

grep - 文件内容搜索工具

4、 显示行号

[root@localhost ~]# ls -l                                 ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                         ### 查看file1.txt的内容
[root@localhost ~]# grep -n "HELLO" file1.txt             ### 显示行号,查询文件file1.txt中“hello”所在的行

grep - 文件内容搜索工具

5、 反向匹配

[root@localhost ~]# ls -l                                 ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                         ### 查看file1.txt的内容
[root@localhost ~]# grep -v "olleh" file1.txt             ### 反向匹配,查询文件file1.txt中“olleh”所在的行

grep - 文件内容搜索工具

6、 递归搜索目录

[root@localhost ~]# cat /tmp/file1.txt                    ### 查看/tmp/file1.txt的内容
[root@localhost ~]# cat /tmp/test/file2.txt               ### 查看/tmp/test/file2.txt的内容
[root@localhost ~]# grep -r "hello" /tmp                  ### 递归搜索目录查询文件中“hello”所在的行

grep - 文件内容搜索工具

7、 使用正则表达式

[root@localhost ~]# ls -l                                 ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                         ### 查看file1.txt的内容
[root@localhost ~]# grep -E "hello|world" file1.txt       ### 使用正则表达式,查询文件file1.txt中“hello”所在的行

grep - 文件内容搜索工具

8、 只显示匹配的部分

[root@localhost ~]# ls -l                                 ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                         ### 查看file1.txt的内容
[root@localhost ~]# grep -E "hello|world" file1.txt       ### 局部查询文件file1.txt中“hello”所在的行

grep - 文件内容搜索工具

二、 高级用法

9、 结合管道操作符 |

[root@localhost ~]# ls -l                                 ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                         ### 查看file1.txt的内容
[root@localhost ~]# cat file1.txt | grep "hello"          ### 首先,cat 读取并输出file1.txt文件的内容;然后,通过管道操作符 |,将这些内容传递给grep命令。最后,在接收到的内容中搜索包含 "hello" 的行,并将这些行输出到终端屏幕。

grep - 文件内容搜索工具

10、 结合find 特定语法占位符{}和结束符+

[root@localhost ~]# ls -l                                            ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt                                    ### 查看file1.txt的内容
[root@localhost ~]# find /root -type f -exec grep "hello" {} +       ### 从/root目录开始,搜索所有文件,并对每个文件执行grep "hello"命令,即在每个文件中搜索包含字符串"hello"的行。找到的文件和匹配的行会被输出。

grep - 文件内容搜索工具


原文始发于微信公众号(奶嘴很忙):grep – 文件内容搜索工具

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/303707.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!