我是Linux新手。我需要在 /home/user1/(包括子文件夹)下的所有 *.java 文件中搜索字符串“teststring”。我如何通过 shell 命令在 linux 中做到这一点。
我需要一种在文件名中可能包含空格的文件列表上运行grep的方法。在没有空格的文件列表中,它非常简单直接。另外,我知道如何处理find和xargs文件名中的空格。我只是在寻找一种grep与 -print0 命令一起使用的方法。
我正在寻找文件中的文本,而不是文件名中的文本...
这列出了所有文件:
find * -print 0 | xargs -0 -i{} echo {}
Run Code Online (Sandbox Code Playgroud)
但是说我必须在两者之间执行 grep (或其他一些命令)。
这列出了文件中包含“howdy doody”的文件:
find * | xargs grep -l "howdy doody" | xargs -i{} echo {}
Run Code Online (Sandbox Code Playgroud)
这不起作用,grep不知道如何识别空终止行。我错过了grep手册页中的某些内容吗?
find * -print0 | xargs grep -l "howdy doody" | xargs -0 -i{} echo {}
Run Code Online (Sandbox Code Playgroud) 假设我在某个包含一堆文件的目录中,我正在尝试查找在其 content中包含字符串“string”的文件。有没有办法做到这一点?谢谢。