我如何在其文件内容中找到包含一个特定的文本序列的所有文件?

下一个不起作用. 它似乎显示系统中的每个单一文件。

find / -type f -exec grep -H 'text-to-find-here' {} \;

当前回答

试试:

find / -type f -exec grep -H 'text-to-find-here' {} \;

将搜索所有文件系统,因为 / 是根文件夹。

Home 文件夹使用:

find ~/ -type f -exec grep -H 'text-to-find-here' {} \;

目前使用文件夹:

find ./ -type f -exec grep -H 'text-to-find-here' {} \;

其他回答

使用:

grep -c Your_Pattern *

这将报告您的模式在当前目录中的每个文件中有多少副本。

试试:

find . -name "*.txt" | xargs grep -i "text_pattern"

试试这个命令,它会给你包含你输入的模式的文件。

sudo grep -inr "your-pattern" /

在这里:i - 忽略案例区别,以便只有在案例中区别的字符相匹配。

n - 确保实际行内容的第一个字符在一张标签站上,以便标签的调整看起来正常。

r - 阅读每个目录下的所有文件,重复,仅按照符号链接,如果它们在命令线上。

找到与 xargs 是优先的,当有许多潜在的比赛可以通过. 它运行比其他选项更慢,但它总是工作. 正如一些发现,xargs 不处理文件与嵌入空间默认。

这里是 @RobEarl 的答案,增强,以便处理文件与空间:

find / -type f | xargs -d '\n' grep 'text-to-find-here'

下面是 @venkat 的答案,同样增强:

find . -name "*.txt" | xargs -d '\n' grep -i "text_pattern"

这里是 @Gert van Biljon的答案,同样增强:

find . -type f -name "*.*" -print0 | xargs -d '\n' --null grep --with-filename --line-number --no-messages --color --ignore-case "searthtext"

以下是 @LetalProgrammer 的答案,同样增强:

alias ffind find / -type f | xargs -d '\n' grep

这里是 @Tayab Hussain的答案,同样增强:

find . | xargs -d '\n' grep 'word' -sl

试试这:

find . | xargs grep 'word' -sl