コンテンツをインポートして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
。