我正在尝试递归地grep目录中的所有.txt文件:
grep -r --include \*.txt findThisStr .
不幸的是,我正在尝试搜索的.txt文件中包含一些空字符,并且使用-a或--text标志似乎会导致文件中所有行的匹配。为了解决这个问题,我希望清理输入并通过grep(like this)管道输入,但是我不确定如何递归地执行此操作,或者即使它是可能的。
基本上,我想做这样的事情,除了file
是动态的:
cat file | tr -d '\000' | grep -r --include \*.txt findThisStr .
我在Windows 7上通过64位MINGW shell使用grep。
答案 0 :(得分:1)
您可以在所有* .txt文件上使用循环:
for i in $(find . -name '*.txt'); do
cat $i | tr -d '\000' | grep findThisStr
done
答案 1 :(得分:0)
find . -name '*.txt' |xargs grep -l findThisStr
将找到名为.txt的文件,并在其中打印出带有findThisStr的文件名。如果你在findThisStr中有特殊字符,你应该转义或引用它们。