出力をファイルにリダイレクトする[重複]

出力をファイルにリダイレクトする[重複]

コンテンツをインポートしてfoo.txt処理した後、元のファイルに書き換えると考えて、次のコマンドを実行しました。代わりにファイルを開くと空です。

cat foo.txt | tr " " "\n" > foo.txt

この行で正確に何が起こっているのか、出力をリダイレクトするように書き直すことはできますかfoo.txt

ベストアンサー1

Redirect(>foo.txt)は、コマンドが実行される前に親シェルによって実行され、catファイルをゼロバイトにリセットします。次のようなものを使用してください

tr " " "\n" foo.txt >foo.new && \
  mv foo.new foo.txt

また、役に立たない使用を避けてくださいcat

おすすめ記事