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