';grep-R字符串*.txt';即使top dir没有';我没有.txt文件

';grep-R字符串*.txt';即使top dir没有';我没有.txt文件,grep,Grep,我不记得递归搜索“-R”命令行开关是在grep中引入的,但现在我无法想象没有它的生活 它唯一的问题是,如果递归中的任何目录与文件名通配符不匹配,grep-R将停止,并且将无法报告确实产生积极搜索结果的目录和文件 例如: grep -R skeleton_app *.xml 将只报告 AndroidManifest.xml: <application android:label="@string/skeleton_app"> 将报告所有: AndroidManifest.

我不记得递归搜索“-R”命令行开关是在grep中引入的,但现在我无法想象没有它的生活

它唯一的问题是,如果递归中的任何目录与文件名通配符不匹配,grep-R将停止,并且将无法报告确实产生积极搜索结果的目录和文件

例如:

  grep -R skeleton_app *.xml
将只报告

AndroidManifest.xml:    <application android:label="@string/skeleton_app">
将报告所有:

AndroidManifest.xml:    <application android:label="@string/skeleton_app">
Binary file bin/classes.dex matches
Binary file bin/com/example/android/skeletonapp/R$string.class matches
gen/com/example/android/skeletonapp/R.java:        public static final int skeleton_app=0x7f050000;
res/values/strings.xml:    <string name="skeleton_app">Understanding Intents</string>
AndroidManifest.xml:
二进制文件bin/classes.dex匹配
二进制文件bin/com/example/android/skeletonapp/R$string.class匹配
gen/com/example/android/skeletonapp/R.java:public static final int skeleton_app=0x7f050000;
res/values/strings.xml:理解意图

我的问题:有没有办法告诉“grep-R”在文件名不匹配时不要停止?

除了grep之外,还要使用
find

$ find ./ -name "*.txp" -exec grep "string" '{}' \; -print
尝试:


谢谢,但是您的方法会丢失行号之前的文件名(使用-n时)。此外,这并不是真的告诉格雷普,而是传给格雷普。因此,@yan的答案是公认的谢谢–要搜索短语,只需添加引号,例如:
grep-r-使用Grunt生成“index.html”。
$ find ./ -name "*.txp" -exec grep "string" '{}' \; -print
grep -R --include '*.xml' skeleton_app .