grep: входной файл 'X' также является выходным

Я использую ubuntu 14.4 и пытаюсь перенаправить вывод команды grep в файл, но я продолжаю получать эту ошибку:

grep: input file 'X' is also the output

Я искал эту проблему и только узнал, что это ошибка в ubuntu 12.4 и о ней нет, может ли кто-нибудь помочь мне разобраться в этой проблеме?

Я запускаю следующую команду:

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

Невозможно использовать тот же файл, что и вход и выход для 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