kas*_*vnd 16 command-line shell grep ubuntu io-redirection
我使用ubuntu 14.4, 并试图将grep命令的输出重定向到文件,但我不断收到此错误:
grep: input file 'X' is also the output
我运行以下命令:
grep -E -r -o -n r"%}(.*){%" > myfile
Run Code Online (Sandbox Code Playgroud)
正如错误所述,它似乎以某种方式将输入和输出解释为相同的名称/obj。我搜索但找不到问题到底是什么?!
jim*_*mij 12
不能使用相同的文件作为grep. 您可以考虑以下替代方案:
临时文件
grep pattern file > tmp_file
mv tmp_file file
Run Code Online (Sandbox Code Playgroud)sed
sed -i -n '/pattern/p' file
Run Code Online (Sandbox Code Playgroud)将整个文件放在变量中(对于大文件来说不是个好主意)
x=$(cat file); echo "$x" | grep pattern > file
Run Code Online (Sandbox Code Playgroud)小智 6
您可以--exclude在grep命令中使用该字段,如下所示:
grep --exclude=myfile -Eron r"%}(.*){%" > myfile
Run Code Online (Sandbox Code Playgroud)