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 sed
para 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' filename
fuente
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.txt
Prueba 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' file
fuente
La forma más fácil para mí ->
echo "Hello my name is Donald" | sed s/\ //g
fuente
Esta es probablemente la forma más sencilla de hacerlo:
sed -r 's/\s+//g' filename > output mv ouput filename
fuente
Prueba esto:
tr -d " \t" <filename
Consulte 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.txt
fuente
hmm ... parece que algo del orden de
sed -e "s/[ \t\n\r\v]//g" < hello.txt
debería estar en el estadio correcto (parece funcionar bajo cygwin en cualquier caso).fuente