我试图以递归方式搜索当前目录中的字符串$level
。我希望它将输出重定向到名为tmpfile2.txt
的文件。当我尝试这样做时,用
grep -nr '\$level' . > tmpfile2.txt
文件tmpfile2.txt
无限增长。罪魁祸首似乎是grep开始搜索tmpfile2.txt并将它在tmpfile2.txt 中找到的内容添加到 tmpfile2.txt,所以它无限地重复出现。
Odder仍然,似乎我在一个多小时前成功地完成了这项工作,命令几乎相同。唯一的区别是它是tmpfile1.txt
并且搜索字符串中没有美元符号。但是,我只是在没有美元符号的情况下尝试过,它仍然给我同样的问题。
我的问题是:a)我如何解决这个问题?b)这是grep的标准行为吗?
答案 0 :(得分:3)
您可以在tmpfile2.txt
命令中排除grep
:
grep -nr '\$level' --exclude=tmpfile2.txt . > tmpfile2.txt
答案 1 :(得分:1)
或者您可以将grep输出重定向到位于搜索文件夹之外的文件中。