¿Reemplazar la coma con una nueva línea en sed en MacOS?
Tengo un archivo de cadenas separadas por comas. Estoy intentando reemplazar las comas con una nueva línea. He intentado:
sed 's/,/\n/g' file
Pero no está funcionando. ¿Qué me estoy perdiendo?
Utilice tr
en su lugar:
tr , '\n' < file
Utilice una cadena entre comillas ANSI-C $'string'
Necesita una nueva línea literal con barra invertida para llegar a sed. Al menos en bash, $''
las cadenas se reemplazarán \n
con una nueva línea real, pero luego tendrás que duplicar la barra invertida que verá sed para escapar de la nueva línea, por ejemplo
echo "a,b" | sed -e $'s/,/\\\n/g'
Tenga en cuenta que esto no funcionará en todos los shells , pero funcionará en los más comunes.
sed 's/,/\
/g'
Funciona en Mac OS X.
Si su uso de sed tiende a ser completamente expresiones de sustitución (como tiende a ser el mío), también puede usar perl -pe
en su lugar
$ echo 'foo,bar,baz' | perl -pe 's/,/,\n/g'
foo,
bar,
baz