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