Risposte:
"Eliminare tutti gli spazi vuoti" può significare una delle cose diverse:
0x20
.\t
"\n
" e altriSe sed
non è un requisito per qualche motivo nascosto, è meglio utilizzare lo strumento giusto per il lavoro.
Il comando tr
ha l'uso principale nel tradurre (da qui il nome "tr") un elenco di caratteri in un elenco di altri caratteri. Come caso angolare, può tradurre in un elenco vuoto di caratteri; L'opzione -d
( --delete
) eliminerà i caratteri che compaiono nell'elenco.
L'elenco dei caratteri può utilizzare le classi di caratteri nella [:...:]
sintassi.
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 [:...:]
sintassi per le classi di caratteri deve essere combinata con la sintassi per i set di caratteri in regexps [...]
, risultando in qualche modo 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
. (Lo vedi altrove?)
Puoi usarlo per rimuovere tutti gli spazi bianchi in file
:
sed -i "s/ //g" file
man sed | sed "s/ //g"
/
con un carattere diverso, ad esempio:sed "ss ssg"