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