
我正在使用以下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 版本上都有效的方式替換一個添加換行符的字串sed
,或者我應該sed
在 Mac OS X 上安裝 GNU 因為這是不可能的?
答案1
您可以在腳本中建立一個文字換行符,如下所示:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\
/'