Discussion:
[shell-script] Retornar somente número
evaldodeoliveirasrs@yahoo.com.br [shell-script]
2016-10-03 21:43:58 UTC
Permalink
Olá pessoal,
Estou precisando retornar somente a parte numérica de uma string, tentei diversos testes com sed e grep, mas não obtive sucesso. Acredito que a solução seja simples para muitos aqui da lista.
Segue exemplo:
entrada "1,2,3 ou 4 ou mesmo 5" saída desejada 12345.


Cordialmente;
Evaldo de Oliveira.
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-10-03 21:48:00 UTC
Permalink
$ grep -o '[0-9]\+' <<< "1,2,3 ou 4 ou mesmo 5" | tr -d '\n'
12345

Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com.br [shell-script]
Olá pessoal,
Estou precisando retornar somente a parte numérica de uma string, tentei
diversos testes com sed e grep, mas não obtive sucesso. Acredito que a
solução seja simples para muitos aqui da lista.
entrada "1,2,3 ou 4 ou mesmo 5" saída desejada 12345.
Cordialmente;
Evaldo de Oliveira.
Fernando Mercês nandu88@gmail.com [shell-script]
2016-10-03 21:55:47 UTC
Permalink
Um jeito é:

$ echo "1,2,3 ou 4 ou mesmo 5" | grep -o '[0-9]' | tr -d \\n
12345

A opção -o (only matching) faz imprimir somente os números, mas o separa
cada impressão com um newline (\n), que tirei com o tr.

Abraço.


Att,

@MercesFernando
mentebinaria.com.br <http://www.mentebinaria.com.br>
---------------------------
Post by ***@yahoo.com.br [shell-script]
Olá pessoal,
Estou precisando retornar somente a parte numérica de uma string, tentei
diversos testes com sed e grep, mas não obtive sucesso. Acredito que a
solução seja simples para muitos aqui da lista.
entrada "1,2,3 ou 4 ou mesmo 5" saída desejada 12345.
Cordialmente;
Evaldo de Oliveira.
Fredi Rolf Bieging fredi.bieging@gmail.com [shell-script]
2016-10-03 21:56:41 UTC
Permalink
Troca o que não for número por "nada":

sed 's/[^0-9]//g' <<< "1,2,3 ou 4 ou mesmo 5"
Post by ***@yahoo.com.br [shell-script]
Olá pessoal,
Estou precisando retornar somente a parte numérica de uma string, tentei
diversos testes com sed e grep, mas não obtive sucesso. Acredito que a
solução seja simples para muitos aqui da lista.
entrada "1,2,3 ou 4 ou mesmo 5" saída desejada 12345.
Cordialmente;
Evaldo de Oliveira.
Fernando Mercês nandu88@gmail.com [shell-script]
2016-10-03 22:06:36 UTC
Permalink
Boa, Fredi!

@Julio, pensamos igual! Tua resposta foi enquanto eu escrevi a minha, então
não vi.


Att,

@MercesFernando
mentebinaria.com.br <http://www.mentebinaria.com.br>
---------------------------
Post by Fredi Rolf Bieging ***@gmail.com [shell-script]
sed 's/[^0-9]//g' <<< "1,2,3 ou 4 ou mesmo 5"
Post by ***@yahoo.com.br [shell-script]
Olá pessoal,
Estou precisando retornar somente a parte numérica de uma string, tentei
diversos testes com sed e grep, mas não obtive sucesso. Acredito que a
solução seja simples para muitos aqui da lista.
entrada "1,2,3 ou 4 ou mesmo 5" saída desejada 12345.
Cordialmente;
Evaldo de Oliveira.
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-10-03 22:22:01 UTC
Permalink
Mas depois que mandei, vi que tinha colocado um \+ desnecessário. Mas
melhor do que a nossa foi a do Fredi, que eu conheço e é um grande
shelleiro de Floripa.

Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by Fernando Mercês ***@gmail.com [shell-script]
Boa, Fredi!
@Julio, pensamos igual! Tua resposta foi enquanto eu escrevi a minha,
então não vi.
Att,
@MercesFernando
mentebinaria.com.br <http://www.mentebinaria.com.br>
---------------------------
Post by Fredi Rolf Bieging ***@gmail.com [shell-script]
sed 's/[^0-9]//g' <<< "1,2,3 ou 4 ou mesmo 5"
Post by ***@yahoo.com.br [shell-script]
Olá pessoal,
Estou precisando retornar somente a parte numérica de uma string, tentei
diversos testes com sed e grep, mas não obtive sucesso. Acredito que a
solução seja simples para muitos aqui da lista.
entrada "1,2,3 ou 4 ou mesmo 5" saída desejada 12345.
Cordialmente;
Evaldo de Oliveira.
itamarnet@yahoo.com.br [shell-script]
2016-10-03 23:51:54 UTC
Permalink
Caro Evaldo

echo '1,2,3 ou 4 ou mesmo 5' | tr -d -c '[0-9]\n'

ou

tr -d -c '[0-9]\n' <<< '1,2,3 ou 4 ou mesmo 5'

Serve?

[]'s
Itamar
evaldodeoliveirasrs@yahoo.com.br [shell-script]
2016-10-04 11:19:46 UTC
Permalink
Bom dia pessoal, Muito obrigado a todos, testei todas as soluções e todas atenderam perfeitamente minha necessidade, por questão de meu entendimento fiz uma pequena adaptação nas soluções apresentadas.


echo -n "ola 1,2,3 ou 4 ou mesmo 5" | sed 's/[^0-9]//g'


Forte abraço.


Cordialmente;


Evaldo de Oliveira
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-10-04 13:05:06 UTC
Permalink
Boooa Itamar, essa (-c = complemento) saiu do fundo do baú... ;)

Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com.br [shell-script]
Caro Evaldo
echo '1,2,3 ou 4 ou mesmo 5' | tr -d -c '[0-9]\n'
ou
tr -d -c '[0-9]\n' <<< '1,2,3 ou 4 ou mesmo 5'
Serve?
[]'s
Itamar
Continue reading on narkive:
Loading...