如何在 Linux 中查找不带有文件名的字符串?


我们知道,我们可以使用 grep 命令来搜索文件中或多个文件中所有行中的特定字符模式。grep 命令以不区分大小写的方式在文件中搜索单词。

让我们看一个简单的示例,在这个示例中,我们将在目录中存在的所有文件中搜索一个模式。

命令

grep -i ‘lp’ Sample*

输出

Sample: The sample was printed via the internet.
Sample: I believe lp cares about what the device is.
Sample1: This was printed via the internet.
Sample1: I believe lp cares about what the device is.
Sample2: This was printed via the internet.
Sample3: I believe lp cares about what the device is.

对于这种情况,唯一的问题是我们不希望文件名随输出一起打印。我们只需要模式被找到的字符串,我们需要打印该字符串即可。

在这种情况下,我们可以使用-h参数,该参数可用于隐藏文件名。

命令

grep -i -hn ‘lp’ Sample*

根据 Linux 文档,-h 标记的作用如下,

“-h,--no-filename

禁止在输出中添加文件名作为前缀。如果要搜索的文件只有一个(或者只有标准输入),则这是默认设置。”

输出

The sample was printed via the internet.
I Believe lp cares about what the device is.
This was printed via the internet.
I believe lp cares about what the device is.
This was printed via the internet.
I believe lp doesn't care what the device is

更新于:2021 年 7 月 30 日

5 千次以上浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告