7
sed -i(インプレース編集)で移植性を実現するにはどうすればよいですか?
FreeBSDを実行している共有ホスティングであるサーバー用のシェルスクリプトを書いています。また、Linuxを実行しているPCでローカルにテストできるようにしたいと考えています。したがって、私はそれらを移植可能な方法で記述しようとしていますが、それsedを行う方法はありません。 私のウェブサイトの一部は生成された静的HTMLファイルを使用し、このsed行は各再生成の後に正しいDOCTYPEを挿入します: sed -i '1s/^/<!DOCTYPE html> \n/' ${file_name.html} sedLinux上のGNU で動作しますが、FreeBSD sedは-iオプションの後の最初の引数がバックアップコピーの拡張であると想定しています。これは次のようになります。 sed -i '' '1s/^/<!DOCTYPE html> \n/' ${file_name.html} しかし、GNUはsed順番に式が直後に続くことを期待します-i。(改行処理の修正も必要ですが、それはここですでに回答されています) もちろん、スクリプトのサーバーコピーにこの変更を含めることもできますが、バージョン管理にVCSを使用することは混乱します。完全に移植可能な方法でsedでこれを達成する方法はありますか?