sed を使用して最初の行を置き換えるにはどうすればよいでしょうか?

sed を使用して最初の行を置き換えるにはどうすればよいでしょうか?

こんにちは。下記のようにsedコマンドを使用してファイルのヘッダー行を置き換えようとしています。

sed "1s/.*/$new_header/" Test_file.csv 

上記の行はヘッダーを置き換えて標準出力に出力しますが、出力を新しいファイルにリダイレクトしたり、ファイル内で直接置き換えたりするにはどうすればよいでしょうか?

sed "1s/.*/$new_header/" Test_file.csv > new_file.csv 

上記のコマンドは正常に動作しますが、同じファイルにリダイレクトしたいです。

答え1

インプレースで編集し、バックアップも取る-iフラグを使用できます。sed

sed -i.bak "1 s/.*/$new_header/" inputfile

この-iオプションは非標準であり、の実装によって動作が異なる場合がありますsedsed -i (インプレース編集) を使用して移植性を実現するにはどうすればよいですか?

関連情報