Esto debería ser realmente simple, pero por alguna razón no está funcionando:
sed -i.bak -E 's/\t/ /' file.txt
En lugar de reemplazar caracteres de tabulación, está reemplazando t
caracteres. He probado todas las variaciones de esto que se me ocurrieron, jugando con citas, etc. Busqué en Google y encontré que todos los demás usaban expresiones bastante similares y parecen funcionar para ellos.
El -E
es una cosa de OS X. Pensé que el fracaso podría ser el resultado de una peculiaridad extraña de OS X sed
, así que lo probé también con Ruby (sin el -i
), y obtuve el mismo resultado:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
Estoy usando Bash 3.2.51 en OS X e iTerm, aunque no puedo ver cómo alguno de ellos podría ser terriblemente relevante. No he establecido ninguna variable de entorno extraña, aunque puedo publicar cualquiera que creas que puede ser relevante.
¿Qué podría estar mal?
ACTUALIZACIÓN : Debo haber hecho algún otro error tipográfico o de ortografía cuando probé la versión de Ruby, ya Gilles señala que hace el trabajo (y he nunca se tuvo que me guiaron a mal!). No estoy seguro de lo que sucedió, pero estoy bastante seguro de que debe haber sido mi error.
\t
en lased
declaración conCTRL-V<TAB>
dónde<TAB>
está la tecla de tabulación y laCTRL-V
tecla de control yv
presionar juntas.