¿Alguien sabe cómo usar Sed para eliminar todos los espacios en blanco en un archivo de texto? No he estado tratando de usar el comando de eliminación "d" para hacerlo, pero parece que no puedo entenderlo
28
"Eliminar todos los espacios en blanco" puede significar una de las siguientes cosas:
0x20
.\t
"\n
" y otrosSi sed
no es un requisito por alguna razón oculta, mejor use la herramienta adecuada para el trabajo.
El comando tr
tiene el uso principal en la traducción (de ahí el nombre "tr") de una lista de caracteres a una lista de otros caracteres. Como caso de esquina, puede traducirse a la lista vacía de caracteres; La opción -d
( --delete
) eliminará los caracteres que aparecen en la lista.
La lista de caracteres puede utilizar clases de caracteres en la [:...:]
sintaxis.
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
Con sed, la [:...:]
sintaxis para las clases de caracteres debe combinarse con la sintaxis para los conjuntos de caracteres en expresiones regulares [...]
, lo que resulta en algo confuso [[:...:]]
:
sed 's/ //g' input.txt > no-spaces.txt
sed 's/[[:blank:]]//g' input.txt > no-spaces.txt
sed 's/[[:space:]]//g' input.txt > no-spaces.txt
tr -d ' ' < input.txt > no-spaces.txt
.tr
ahora. (¿Lo ves en otro lugar?)Puede usar esto para eliminar todos los espacios en blanco en
file
:fuente
man sed | sed "s/ //g"
/
con un personaje diferente, por ejemplo:sed "ss ssg"