Alguém sabe como usar o Sed para excluir todos os espaços em branco em um arquivo de texto? Eu tenho tentado usar o comando "d" delete para fazer isso, mas parece que não consigo descobrir
28
"Excluir todos os espaços em branco" pode significar uma das seguintes coisas:
0x20
.\t
"\n
" e outrosSe sed
não for um requisito por algum motivo oculto, use melhor a ferramenta certa para o trabalho.
O comando tr
tem o uso principal na tradução (daí o nome "tr") de uma lista de caracteres para uma lista de outros caracteres. Como uma caixa de canto, pode ser traduzida para a lista vazia de caracteres; A opção -d
( --delete
) excluirá os caracteres que aparecem na lista.
A lista de caracteres pode fazer uso de classes de caracteres na [:...:]
sintaxe.
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
Com sed, a [:...:]
sintaxe para classes de caracteres precisa ser combinada com a sintaxe para conjuntos de caracteres em regexps [...]
, resultando em 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
agora. (Você vê-la em outro lugar?)Você pode usar isso para remover todos os espaços em branco em
file
:fonte
man sed | sed "s/ //g"
/
com um personagem diferente, por exemplo:sed "ss ssg"