Quiero eliminar todos los espacios en blanco de un archivo de texto determinado. ¿Hay algún comando de shell disponible para esto? O cómo usarlo sedpara este propósito.
Quiero algo como a continuación:
$ cat hello.txt | sed ....
Intenté esto: cat hello.txt | sed 's/ //g'.Pero elimina solo espacios, no pestañas.

Respuestas:
Para borrar todos los espacios en blanco, incluidas las nuevas líneas, puede probar:
cat file.txt | tr -d " \t\n\r"También puede utilizar las clases de caracteres definidas por tr (créditos al comentario de htompkins ):
cat file.txt | tr -d "[:space:]"Por ejemplo, para borrar solo el espacio en blanco horizontal:
cat file.txt | tr -d "[:blank:]"fuente
tr. Ejemplos: Para eliminar todos los espacios en blanco:cat file.txt | tr -d "[:space:]"Para eliminar todos los espacios en blanco horizontales:cat file.txt | tr -d "[:blank:]"Mucho más simple en mi opinión:
sed -r 's/\s+//g' filenamefuente
Creo que puede usar sed para borrar el espacio sin perder algo de información, como cambiar a otra línea.
cat hello.txt | sed '/^$/d;s/[[:blank:]]//g'fuente
tr -d " " < infile.txt > outfile.txtPrueba esto:
sed -e 's/[\t ]//g;/^$/d'(encontrado aquí )
La primera parte elimina todas las pestañas (
\t) y los espacios, y la segunda parte elimina todas las líneas vacíasfuente
^$coincide con una línea vacía, ya que busca "inicio de línea" (^) e inmediatamente después, "final de línea" ($).Si desea eliminar TODOS los espacios en blanco, incluso nuevas líneas:
perl -pe 's/\s+//g' filefuente
La forma más fácil para mí ->
echo "Hello my name is Donald" | sed s/\ //gfuente
Esta es probablemente la forma más sencilla de hacerlo:
sed -r 's/\s+//g' filename > output mv ouput filenamefuente
Prueba esto:
tr -d " \t" <filenameConsulte la página de manual de tr (1) para obtener más detalles.
fuente
Amigo, solo python test.py en tu terminal.
f = open('/home/hduser/Desktop/data.csv' , 'r') x = f.read().split() f.close() y = ' '.join(x) f = open('/home/hduser/Desktop/data.csv','w') f.write(y) f.close()fuente
f.read().strip("\t\n\r ")más eficiente?Sin embargo, esta respuesta es similar a otras, ya que algunas personas se han quejado de que la salida va a STDOUT, solo voy a sugerir que se redirija al archivo original y se sobrescriba. Normalmente nunca sugeriría esto, pero a veces trabajos rápidos y sucios.
cat file.txt | tr -d " \t\n\r" > file.txtfuente
hmm ... parece que algo del orden de
sed -e "s/[ \t\n\r\v]//g" < hello.txtdebería estar en el estadio correcto (parece funcionar bajo cygwin en cualquier caso).fuente