Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

1. Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Herisson Ricardo Dias de Oliveira
herissonlinux

(usa Slackware)

Enviado em 10/06/2021 - 11:44h

Olá pessoal, estou com essa dúvida aqui, como faço pra mudar o final do ip que obtive da maquina que estou conectado? consegui pegar o ip, agora quero mudar só o ultimo caractere com outra variavel.



#!/bin/bash
echo "Deseja conectar a um computador da REDE? (sim ou não): "
select yn in "sim" "nao"; do
case $yn in
sim ) ip=$(ifconfig eth0 | grep "inet end" | awk '{print $3}')
echo $ip
echo -e "Coloque o ultimo numero do ip: Exemplo: 1"
read rede
#ssh 192.168.0.9$rede #aqui esta comentado, foi só um exemplo funciona assim, precisa com a variavel pra redes diferente.
ssh $ip$rede ## sei que aqui esta errado, mas quero mudar o ultimo numero aqui
break;;
nao ) exit;;
esac
done



  


2. MELHOR RESPOSTA

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 10/06/2021 - 21:13h

Lá vai um exemplo:


$ a="192.168.0.10"

$ b=2

$ ip="${a%.*}.$b"

$ echo $ip
192.168.0.2




___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento


3. Re: Como mudar o final de uma informação de uma variavel no shell script

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 10/06/2021 - 21:17h

ip="${a%.*}.$b"

Vou explicar melhor isso.

${a%.*} - isso é expansão de parâmetros, o % retira uma ocorrência predefinida do final da string, que no caso foi " .* " , simples assim.

.$b - O ponto foi retirado com a expansão de parâmetros, por isso ele deve ser reinserido.

Adaptando ao teu exemplo: ssh "${ip%.*}.$rede"

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



4. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Herisson Ricardo Dias de Oliveira
herissonlinux

(usa Slackware)

Enviado em 11/06/2021 - 08:44h


mauricio123 escreveu:

Lá vai um exemplo:


$ a="192.168.0.10"

$ b=2

$ ip="${a%.*}.$b"

$ echo $ip
192.168.0.2




___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento


Ok, Vlw mesmo brother, já vai me ajudar bastante na automação de minhas tarefas aqui.


5. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

aguamole
aguamole

(usa KUbuntu)

Enviado em 11/06/2021 - 20:03h

Da para fazer com sed.
$ a="192.168.0.10"

$ b=2

$ sed "s/$a/192.168.0.$b/"

Eu n testei to no cell, mas com sed da para fazer.


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


6. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/06/2021 - 21:12h


aguamole escreveu:

Da para fazer com sed.
$ a="192.168.0.10"

$ b=2

$
 sed "s/$a/192.168.0.$b/" 


Eu n testei to no cell, mas com sed da para fazer.


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.

Que "SED" é esse AGUAMOLE?
----------------------------------------
a="192.168.0.10"
b=200
sed "s/[0-9]\+$/$b/" <<< "$a"
192.168.0.200





______________________________________________________________________
Att.: Marcelo Oliver



7. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 11/06/2021 - 21:20h

São várias as formas de fazer, ou preferi passar a dica da expansão de parametros que é uma bala, se precisar fazer muita dessas automações ou um script muito longo vai ser mais eficiente do que ficar usando comandos.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



8. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

aguamole
aguamole

(usa KUbuntu)

Enviado em 12/06/2021 - 00:03h

Msoliver o que tem de errado no meu sed? Eu n to sem pc ja a muito tempo, n posso testar.
E o que esse +$ que vc uso faz?


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


9. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2021 - 17:24h

aguamole escreveu:

Msoliver o que tem de errado no meu sed?
Eu n to sem pc ja a muito tempo, n posso testar.
E o que esse +$ que vc uso faz?


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


Vamos lá AguaMole.
a="192.168.0.10"
b=200
sed "s/[0-9]\+$/$b/" <<< "$a"
192.168.0.200
Esse "+$", é parte da REGEX.
[0-9]\+$ => Troca "um ou mais" "+" números do final, pela var "$b"
O primeiro erro do seu sed, é que não define onde será feita a alteração.....
sed "s/$a/192.168.0.$b/"
Seu comando, fica esperando pela entrada "stdin"
Att.: Marcelo Oliver



10. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

aguamole
aguamole

(usa KUbuntu)

Enviado em 12/06/2021 - 22:06h

Verdade msoliver.
sed "s/$a/192.168.0.$b/" <<< "$a"

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts