
Я использую следующую 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, но с BSD SED на Mac OS X \n превращается в n
следующее:
4330M-p -> Vern
Нормализовать некоторые выходные данные, содержащие номер версии, который меняется со временем, в статическую строку, за которой следует новая строка. Это используется как часть тестирования, где выходные данные после sed
обработки сравниваются diff
с известным золотым файлом, и мы не хотим сбоев из-за изменения номера версии, и нам также нужно добавить новую строку для наших целей.
Как мне заменить строку строкой, которая добавляет новую строку таким образом, чтобы это работало как в GNU, так и в BSD-версии sed
, или мне просто установить GNU sed
на Mac OS X, потому что это невозможно сделать?
решение1
Вы можете сделать буквальный перенос строки в своем скрипте, например так:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\
/'