在Windows中,我会搜索在文件夹中查找单词。 同样,我想知道在包含许多子目录和文件的目录中是否出现特定单词。 我对grep语法的搜索显示我必须指定文件名,即grep string filename 。
现在,我不知道文件名,所以我该怎么办? 一位朋友建议做grep -nr string ,但我不知道这意味着什么,我没有得到任何结果(在我发出ctrl + c之前没有响应)。
#1楼
grep -nr 'yourString*' .
最后的点搜索当前目录。 每个参数的含义:
-n Show relative line number in the file
'yourString*' String for search, followed by a wildcard character
-r Recursively search subdirectories listed
. Directory for search (current directory)
grep -nr 'MobileAppSer*' . (会找到MobileAppServlet.java或MobileAppServlet.class或MobileAppServlet.txt ; 'MobileAppASer*.*'是另一种做同样事情的方法。)
要检查更多参数,请使用man grep命令。
#2楼
你选择的答案是好的,它可以工作,但这不是正确的方法,因为:
grep -nr yourString* .
这实际上搜索字符串"yourStrin"和"g" 0或多次。
所以正确的方法是:
grep -nr \w*yourString\w* .
此命令使用当前文件夹之前和之后的任何字符搜索字符串。
#3楼
我喜欢使用的另一个选项:
find folder_name -type f -exec grep your_text {} \;
-type f只返回文件而不是文件夹
-exec和{}在搜索中找到的文件上运行grep(确切的语法是“-exec command {}”)。
#4楼
为什么不进行递归搜索以查找子目录中的所有实例:
grep -r 'text' *
这就像一个魅力。
#5楼
grep -r "yourstring" *会在任何文件和文件夹中找到“yourstring”
现在,如果您想同时查找两个不同的字符串,则可以始终使用选项E并为搜索添加单词。 休息后的例子
grep -rE "yourstring|yourotherstring|$" *将搜索你的yourstring或你的yourotherstring匹配的列表位置