Preciso substituir todos os espaços em branco dentro do meu texto por vírgulas. Atualmente, estou usando esta linha, mas ela não funciona: recebo como saída um arquivo de texto que é exatamente igual ao original:
sed 's/[:blank:]+/,/g' orig.txt > modified.txt
obrigado
text-processing
aneuryzm
fonte
fonte
Respostas:
Com
sed
:Ou com
perl
:Editar: para excluir novas linhas em perl, você pode usar um negativo duplo
's/[^\S\n]+/,/g'
ou corresponder apenas aos caracteres de espaço em branco de sua escolha's/[ \t\r\f]+/,/g'
.fonte
+
operador no sed, acabei de atualizar minha resposta. As novas linhas são espaço em branco no perl, então você terá que fazer sua classe de espaço em branco manualmente se não quiser incluí-lo. Eu adicionei duas soluções para isso também.Usando
tr
:Isso substituirá qualquer espaço em branco horizontal por vírgula. Qualquer espaço em branco repetido será substituído apenas por uma única vírgula.
fonte
Aqui, o nome do arquivo é Servers. Ele contém o conteúdo abaixo.
Se usarmos o comando acima, podemos obter a saída abaixo.
fonte