Pregunta:
Es un problema general cuando uso sed
pero \n
funciona cuando lo uso fuera de sed
. Este es un ejemplo de lo que obtengo con sed
.
Tengo el archivo myfile
con el siguiente contenido:
1 2 3 4 5
Cuando uso esto:
sed 's/ /\n/g' myfile
Entiendo esto:
1n2n3n4n5
En lugar de obtener esto:
1
2
3
4
5
¿Alguien sabe dónde está el problema?
Respuesta:
Está utilizando OSX 10.8
, por lo que su implementación sed
es FreeBSD sed
, no GNU sed
. Entonces FreeBSD sed
no interpreta \n
como nueva línea.
Puedes probar:
$ sed 's/ /\'$'\n/g' myfile
$'\n/g'
hace que bash
interprete la cadena como expansión de escape estándar, por lo que \n
se convierte a una nueva línea antes del proceso sed
.
o usando tr
lugar de sed
:
$ tr -s ' ' '\n' < myfile