Linux中查找包含特定文本的文件

时间:2020-02-23 14:39:35  来源:igfitidea点击:

在本教程中,我们将看到如何查找包含特定文本的文件。

问题

我们想在目录中的所有文件中搜索任何特定文本。

解决方案

Linux或者UNIX服务器上有很多和许多文件。
我们可以使用find命令找到并找到文件,但无法查看特定文本的文本文件。

我们可以使用grep命令。
grep命令搜索给定输入包含指定文本的行的输入文件。

1.在当前目录中搜索文本"https://www.google.com"

grep -s “text to be searched" *

举例:

$grep -s “https://www.google.com" *
site.txt:https://www.google.com is awesome search engine

2.在当前目录和所有子目录中搜索文本"https://www.google.com"

grep -r “https://www.google.com" *

3.在当前目录中搜索文本"https://www.google.com",所有子目录和显示匹配的颜色文本

grep -r -color “https://www.google.com" *

4.在/opt目录中搜索文本"https://www.google.com"并显示文件名

默认情况下,Grep打印文件中包含文件中的文本的文件名和行。
如果我们只想显示文件名,可以使用以下命令。

grep -r “https://www.google.com" /opt/*| cut -d: -f1

5.隐藏警告垃圾邮件

默认情况下,Grep打印文件中包含文件中的文本的文件名和行。
如果我们只想显示文件名,可以在Grep命令下面使用Grep Command产生许多错误消息,因为诸如此类的权限问题

没有这样的文件或者目录没有这样的设备或者地址权限拒绝

有时,我们会获得很多错误,即很难找到实际文件。
要隐藏所有错误或者警告消息,请添加2>/dev/null到grep命令。
这将发送和隐藏不需要的外容/dev/null。

grep -r “https://www.google.com" /opt/* 2>/dev/null

6.搜索文本时忽略案例

如果要做不敏感的搜索,请使用grep使用-i选项。

grep -r -i “https://www.google.com" *