grep:入力ファイル「X」も出力されます。

grep:入力ファイル「X」も出力されます。

コマンド出力をファイルにリダイレクトしよubuntu 14.4うとしていますが、次のエラーが発生し続けます。grep

grep: input file 'X' is also the output

次のコマンドを実行します。

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

エラーによると、入力と出力を同じ名前/オブジェクトとして解釈するようです。検索してみましたが、何が問題なのかわかりませんでしたか? !

ベストアンサー1

入力と出力に同じファイルを使用することはできませんgrep。次の選択肢を検討してください。

  • 一時ファイル

    grep pattern file > tmp_file
    mv tmp_file file
    
  • sed

    sed -i -n '/pattern/p' file
    
  • ファイル全体を変数に入れます(大容量ファイルには適していません)。

    x=$(cat file); echo "$x" | grep pattern > file
    

おすすめ記事