我使用ubuntu 14.4
,并尝试将grep
命令的输出重定向到文件,但我不断收到此错误:
grep: input file 'X' is also the output
我已经搜索了这个问题,才发现这是一个错误,ubuntu 12.4
并且没有任何描述,有人可以帮助我解决这个问题吗?
我运行以下命令:
grep -E -r -o -n r"%}(.*){%" > myfile
我添加我的命令!感谢您的提示,但是当我尝试在其他路径中使用文件时,它并不能作为前提,而我不能这样做!
—
卡斯拉夫德2014年
例如使用../fi即可获取
—
Kasramvd 2014年
bash: ../f.txt: Permission denied
显示完整命令,您的输入文件是什么,或者您正在使用管道?
—
jimmij 2014年
现在,我了解到您实际上是递归地对整个目录结构进行遍历,并希望将结果附加到该结构中已经存在的文件中。问题在于,shell(bash,zsh等)首先执行重定向,然后才返回命令(在此示例中为grep)。这意味着
—
jimmij 2014年
grep
in命令中grep pattern file > file
已经看到了空文件,因此没有任何输入。但是,如果使用>>
而不是,>
则文件不为空,但是grep仍然会引发错误,因为它可能导致一次又一次地递归处理同一行(模式)。
grep pattern file > file
那么它将无法正常工作。您不能将相同的文件用作grep的输入和输出。