Substituir 0 por 'espaço' [RESOLVIDO]

1. Substituir 0 por 'espaço' [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/11/2017 - 01:43h

pessoas ... tenho linhas com 42 dezenas cada... preciso substituir COM SED todos os numeros 'O' iniciais por espaço .. ou seja 01-02-03-04-05-06-07-08-09 !!!!



  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 01/11/2017 - 14:00h

$ cat arquivo 
01-02-03-04-05-06-07-08-09-10-11-12-13-14-15
01-02-03-04-05-06-07-08-09-10-20-30-40-50-60
10-20-30-40-50-01-02-03-04-05-06-07-08-09-00

$ sed -r 's/(^|-)0/\1 /g' arquivo
1- 2- 3- 4- 5- 6- 7- 8- 9-10-11-12-13-14-15
1- 2- 3- 4- 5- 6- 7- 8- 9-10-20-30-40-50-60
10-20-30-40-50- 1- 2- 3- 4- 5- 6- 7- 8- 9- 0


3. Re: Substituir 0 por 'espaço'

Vinicius Araujo Lopes
viniciusalopes

(usa Ubuntu)

Enviado em 01/11/2017 - 04:55h

Opa!
Com script é molezinha...
#!/bin/bash

# Laco para executar do 1 ao 9
for i in $(seq 9)
do
# Substitui o texto e salva em um arquivo temporário
sed "s/0$i/ $i/g" arquivo > arquivo-tmp

# Sobrepõe o arquivo original com o conteúdo do arquivo temporário
cp arquivo-tmp arquivo
done

# Exclui o arquivo temporário
rm arquivo-tmp



 __________________________________
/ Apresente soluções! \
| Opiniões não resolvem problemas. |
| |
\ --Viniciusalopes /
---------------------------------
\ ^__^
\ (oo)\_______
(__) )/\/
||----w |
|| ||



4. Re: Substituir 0 por 'espaço' [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/11/2017 - 13:57h

Mauriciodez escreveu:

pessoas ... tenho linhas com 42 dezenas cada... preciso substituir COM SED todos os numeros 'O' iniciais por espaço .. ou seja 01-02-03-04-05-06-07-08-09 !!!!


Boa tarde Mauricio.
Segue sugestão:
Exemplo:
seq -w -s"-" 30|sed 's/-0/- /g'|sed 's/^0/ /'
1- 2- 3- 4- 5- 6- 7- 8- 9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30


Att.:
Marcelo Oliver


5. Re: Substituir 0 por 'espaço' [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/11/2017 - 16:21h

Ryuk escreveu:

$ cat arquivo 
01-02-03-04-05-06-07-08-09-10-11-12-13-14-15
01-02-03-04-05-06-07-08-09-10-20-30-40-50-60
10-20-30-40-50-01-02-03-04-05-06-07-08-09-00

$ sed -r 's/(^|-)0/\1 /g' arquivo
1- 2- 3- 4- 5- 6- 7- 8- 9-10-11-12-13-14-15
1- 2- 3- 4- 5- 6- 7- 8- 9-10-20-30-40-50-60
10-20-30-40-50- 1- 2- 3- 4- 5- 6- 7- 8- 9- 0


blz .. adaptei aqui
sed -r 's/(^|\ )0/\1 /g' 


se puder da uma debugada nesse comando aí pra eu entender !!!


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



6. Re: Substituir 0 por 'espaço' [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 01/11/2017 - 20:14h

Mauriciodez escreveu:
blz .. adaptei aqui
sed -r 's/(^|\ )0/\1 /g' 


se puder da uma debugada nesse comando aí pra eu entender !!!


sed -r 's/(^|-)0/\1 /g'
"sed -r" = habilita o modo regex
's/procurar/substituir/g' = o "g" para substituir todas as ocorrências
"(^|-)0" = procura por zero no início da linha "^0" ou com o traço na frente "-0"
"\1 " = preserva o primeiro padrão encontrado (^ ou -) e substitui apenas o segundo "0"

Mais ou menos isso!