sed コマンドで何が起こっているのでしょうか?

sed コマンドで何が起こっているのでしょうか?

現在、シェルでちょっとした実験を行っています。

私のコマンドは次のとおりです:

echo 'This a cool butterfly' > test
sed 's/butterfly/parrot/g' test > test

しかし、テスト ファイルで単純な cat を実行すると、ファイルは空になります。なぜでしょうか?

答え1

ファイルの読み取りと書き込みを同時に行うことはできません。resume では、sed はファイル 'test' を読み取りますが、同時にこのファイルに書き込みを行っているため、結果は空のファイルになります。

これを試して:

sed -i 's/butterfly/parrot/g' test 

これにより、ファイルはその場で編集されます。

関連情報