
Estoy usando el siguiente sed
comando:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\n/'
Que se normaliza así:
4330M-p -> Ver<newline>
Esto funciona bien con GNU SED, pero con BSD SED en Mac OS X, el \n se convierte en algo n
así:
4330M-p -> Vern
Para normalizar algunos resultados que contienen un número de versión que cambia con el tiempo a una cadena estática, seguida de una nueva línea. Esto se utiliza como parte de las pruebas en las que la salida después sed
del procesamiento se compara diff
con un archivo dorado conocido y no queremos fallas debido al cambio del número de versión y además necesitamos agregar una nueva línea para nuestros propósitos.
¿Cómo puedo reemplazar con una cadena que agregue una nueva línea de una manera que funcione tanto en la versión GNU como en la BSD sed
, o debería simplemente instalar GNU sed
en Mac OS X porque esto no se puede hacer?
Respuesta1
Puedes hacer una nueva línea literal en tu script, así:
cat version | sed -e 's/[0-9][0-9][0-9][0-9][0-9:M]*-[abp]/Ver\
/'