我如何在其文件内容中找到包含一个特定的文本序列的所有文件?
下一个不起作用. 它似乎显示系统中的每个单一文件。
find / -type f -exec grep -H 'text-to-find-here' {} \;
我如何在其文件内容中找到包含一个特定的文本序列的所有文件?
下一个不起作用. 它似乎显示系统中的每个单一文件。
find / -type f -exec grep -H 'text-to-find-here' {} \;
当前回答
试试这个命令,它会给你包含你输入的模式的文件。
sudo grep -inr "your-pattern" /
在这里:i - 忽略案例区别,以便只有在案例中区别的字符相匹配。
n - 确保实际行内容的第一个字符在一张标签站上,以便标签的调整看起来正常。
r - 阅读每个目录下的所有文件,重复,仅按照符号链接,如果它们在命令线上。
其他回答
要搜索字符串和输出,就是与搜索字符串相同的字符串:
for i in $(find /path/of/target/directory -type f); do grep -i "the string to look for" "$i"; done
吉:
for i in $(find /usr/share/applications -type f); \
do grep -i "web browser" "$i"; done
要显示包含搜索字符串的文件名:
for i in $(find /path/of/target/directory -type f); do if grep -i "the string to look for" "$i" > /dev/null; then echo "$i"; fi; done;
吉:
for i in $(find /usr/share/applications -type f); \
do if grep -i "web browser" "$i" > /dev/null; then echo "$i"; \
fi; done;
您可以使用以下命令从文件中找到特定文本:
cat file | grep 'abc' | cut -d':' -f2
试试这个命令,它会给你包含你输入的模式的文件。
sudo grep -inr "your-pattern" /
在这里:i - 忽略案例区别,以便只有在案例中区别的字符相匹配。
n - 确保实际行内容的第一个字符在一张标签站上,以便标签的调整看起来正常。
r - 阅读每个目录下的所有文件,重复,仅按照符号链接,如果它们在命令线上。
可以使用,即使我们不寻找一个链条。
只是跑步,
grep -RIl "" .
将打印到所有文本文件的路径,即只有可打印的字符的文件。
找到与 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