
次のsed
コマンドを使用しています:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\n/'
これは次のように正規化されます。
4330M-p -> Ver<newline>
これは GNU SED では問題なく動作しますが、Mac OS X 上の BSD SED では、\n はn
次のようになります。
4330M-p -> Vern
時間の経過とともに変化するバージョン番号を含む出力を、静的な文字列に正規化し、その後に改行を追加します。これは、sed
処理後の出力diff
を既知のゴールデン ファイルと比較するテストの一部として使用され、バージョン番号の変更による失敗を避け、目的に合わせて改行を追加する必要があります。
の GNU 版と BSD 版の両方で機能する方法で改行を追加する文字列に置き換えるにはどうすればよいですか。それとも、これはできないので Mac OS X にsed
GNU をインストールするだけでよいのでしょうか。sed
答え1
次のように、スクリプト内でリテラルな改行を作成できます。
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\
/'