LinuxとMac OS X間でGNU sedスクリプトを共有する方法

LinuxとMac OS X間でGNU sedスクリプトを共有する方法

sedLinuxで使用されているGNUスクリプトがインストールされており、GNUisms/bin/sedが含まれているようです。 Mac OS Xを使用する共同作業者がいます。 GNU以外のインストールsed、場所、/usr/bin/sedおよびHomebrew(http://mxcl.github.io/homebrew/sed次のようにGNUをインストールできます。gsedコアツールパッケージはにあります/usr/local/bin/gsed

現在のスクリプトはで始まります#!/bin/sed -fsedGNUをインストールしたときにMac OS Xで動作するように変更するにはどうすればよいですかgsed

別のオプションはGNUismを削除することですが、共同編集者に中間バージョンのテストを依頼するためにMac OS Xをインストールしていないため、少し難しいかもしれません。

ベストアンサー1

いくつかのオプションがあります:

  • #!/usr/bin/gsed -fどこでも(そこにあると仮定して/usr/bin)Shebangとして使用し、Linux環境が正しくシンボリックリンクされていることを確認してください。
  • GNUismを削除します。
  • sedユーザーディレクトリより古いディレクトリのシンボリックリンク(/usr/bin/gsed潜在的に危険)/usr/bin$PATH
  • 次のようにラッパースクリプトを作成します。
#!/bin/sh

script=/foo

type gsed >/dev/null 2>&1 && exec gsed -f "$script"
exec sed -f "$script"

最後に、1つ以上の環境を変更する必要があるか、スクリプト自体を変更する必要があります。

おすすめ記事