Shell

grep:輸入文件’X’也是輸出

  • February 17, 2022

我使用ubuntu 14.4, 並試圖將grep命令的輸出重定向到文件,但我不斷收到此錯誤:

grep: input file 'X' is also the output

我執行以下命令:

grep -E -r -o -n r"%}(.*){%" > myfile

正如錯誤所述,它似乎以某種方式將輸入和輸出解釋為相同的名稱/obj。我搜尋了但找不到究竟是什麼問題?!

不能使用相同的文件作為grep. 您可以考慮以下替代方案:

  • 臨時文件
grep pattern file > tmp_file
mv tmp_file file
sed -i -n '/pattern/p' file
  • 將整個文件放入變數中(對於大文件來說不是個好主意)
x=$(cat file); echo "$x" | grep pattern > file

您可以像這樣在命令中使用該--exclude欄位:grep

grep  --exclude=myfile  -Eron  r"%}(.*){%"  >  myfile

引用自:https://unix.stackexchange.com/questions/164236