
Estou usando o seguinte sed
comando:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\n/'
O que normaliza assim:
4330M-p -> Ver<newline>
Isso funciona bem com GNU SED, mas com BSD SED no Mac OS X, o \n se transforma em algo n
assim:
4330M-p -> Vern
Para normalizar alguma saída que contém um número de versão que muda com o tempo para uma string estática, seguida por uma nova linha. Isso é usado como parte do teste onde a saída após sed
o processamento é comparada diff
com um arquivo golden conhecido e não queremos falhas devido à alteração do número da versão e precisamos ainda de uma nova linha adicionada para nossos propósitos.
Como posso substituir por uma string que adiciona uma nova linha de uma forma que funcione nas versões GNU e BSD sed
, ou devo apenas instalar o GNU sed
no Mac OS X porque isso não pode ser feito?
Responder1
Você pode criar uma nova linha literal em seu script, assim:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\
/'