Substitui todos os espaços em branco por vírgulas em um arquivo de texto

7

Eu preciso substituir todos os espaços em branco no meu texto por vírgulas. Atualmente estou usando essa linha, mas não funciona: recebo como saída um arquivo de texto que é exatamente o mesmo do arquivo original:

sed 's/[:blank:]+/,/g' orig.txt > modified.txt

obrigado

    
por aneuryzm 22.04.2011 / 10:23

3 respostas

9

com sed :

sed -e 's/\s\+/,/g' orig.txt > modified.txt

Ou com perl :

perl -pne 's/\s+/,/g' < orig.txt > modified.txt

Editar: Para excluir novas linhas no 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' .

    
por 22.04.2011 / 10:26
11

Usando tr :

tr -s '[:blank:]' ',' <file

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.

    
por 22.04.2011 / 17:22
-1
awk '{print $1","}' Servers | tr -d '[\n]' | xargs echo 

Aqui o nome do arquivo é Servers .. Ele contém o conteúdo abaixo ..

Server1
Server2
Server3

Se usarmos o comando acima, podemos obter a saída abaixo ..

Server1,Server2,Server3,


[mohramak@oc3246038448 Desktop]$ cat Servers
Server1
Server2
Server3
[mohramak@oc3246038448 Desktop]$ awk '{print $1","}' Servers | tr -d '[\n]' | xargs echo 
Server1,Server2,Server3,
[mohramak@oc3246038448 Desktop]$ 
    
por 13.04.2016 / 13:34