Вы можете сделать буквальный перевод строки в вашем скрипте, например, так:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\ /'
Я использую следующую 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, потому что это невозможно сделать?
Вы можете сделать буквальный перевод строки в вашем скрипте, например, так:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\ /'