tutorial online regex osx sed carriage-return

online - sed regex



Eliminando retorno de carro en Mac OS X usando sed (2)

Es porque sed disponible en OSX no reconoce como un carácter especial a diferencia del sed en Linux.

Puedes usarlo de la manera que estás usando:

sed -i.bak $''s//r//'' file

O esto:

sed -i.bak "s/$(printf ''/r'')//" file

O bien, puedes usar tr en OSX:

tr -d ''/r'' < file

En Linux para eliminar el retorno de carro, podemos ejecutar:

sed -i ''s//r//g'' <file>

Pero lo mismo no funcionará en Mac OS X. Necesita preceder $ like:

sed -i $''s//r//'' <file>

Y "g" tampoco es necesario.

¿Por qué esto es tan?


Otra solución portátil y flexible es:

sed -i.bak $''s//x0D//'' file

Porque el carácter de retorno tiene el código ASCII 0D. / x sustituciones funcionan para todas las versiones POSIX de sed, y puede hacer coincidir cualquier otro carácter problemático buscando el código ASCII. Ver: re_format (7) , tabla ASCII