msoliver
(usa Debian)
Enviado em 14/11/2016 - 21:19h
vinalencc escreveu:
Olá a todos!
Tudo bem?
Gostaria de uma pequena ajuda com um script que estou escrevendo.
Esse meu script é para instalar e configurar o programa de IRC WeeChat, assim como realizar algumas configurações, além de criar e acrescentar certificados SASL e SSL. Porém, estou com um pequeno problema. Eu preciso pegar a URL de uma rede que esteja configurada no $HOME (~/.weechat/irc.conf) do usuário, e acrescentar uma porta após o endereço.
Mas, o usuário poderia ter deixado configurado uma URL com as possibilidades abaixo:
irc.endereco.net
irc.endereco.net/ (com a barra no fim)
irc.endereco.net:8888
irc.endereco.net:8888/ (com a barra no fim)
Independente do formato apresentado na lista, e independente do endereço, gostaria de acrescentar o número da porta (caso não exista) ou queria trocar a porta (caso já tenha sido configurada com a porta). Qual dica vocês podem me dar sobre esse caso?
Agradeço desde já,
Vinícius.
Boa noite, vinalencc.
Seguem sugestões:
1 - Verifica se termina com "/", SEM a PORTA.
egrep '[a-z]+/$' LINKS_IRC.txt
irc.endereco.net/
2 - Verifica se termina com "/" com a PORTA.
egrep --color '[0-9]+/$' LINKS_IRC.txt
irc.endereco.net:8888/
3 - Verifica se tem a PORTA.
egrep --color '[a-z]+$' LINKS_IRC.txt
irc.endereco.net:8888
Em qualquer uma das situações acima, ALTERA o Nº da PORTA:
sed -r 's/([a-z0-9.]+)(:?\/?[0-9/]+?)/\1:5555/' LINKS_IRC.txt
irc.endereco.net:5555
irc.endereco.net:5555
irc.endereco.net:5555
irc.endereco.net:5555
cat LINKS_IRC.txt
irc.endereco.net
irc.endereco.net/
irc.endereco.net:8888
irc.endereco.net:8888/
Se a RESPOSTA foi SATISFATÓRIA, marque a como A MELHOR . . . :)
att.:
marcelo oliver