|
From: | Alfredo Casanova |
Subject: | Re: [shell-script-pt] ER no if |
Date: | Tue, 12 May 2020 15:17:13 -0300 |
Marcelo, suas expressões regulares estão MUITO erradas.O que vai entre colchetes é uma lista de caracteres, não um range numérico. Se você coloca [192-255], sua expressao regular vai entender "1 ou 9 ou (de 2 até 2) ou 5 ou 5".Exemplo:
[0-9] significa 0 a 9[0-3] significa 0 a 3.pra fazer 192 a 255, vc teria q fazer +- o seguinte:(19[2-9]|2[0-4][0-9]|25[0-5])o | é um OU lógico.Delimitando entre parenteses, vc está dizendo que quer um daqueles três blocos:19[2-9] = numero 1 e numero 9 (19) seguido de qualquer numero entre 2 e 9 (192 a 199)2[0-4][0-9] = numero 2 seguido de qualquer numero de 0 a 4 (vai aceitar 20, 21, 22, 23 e 24) seguido de qualquer numero de 0 a 9 (logo, de 200 a 249)25[0-5] = caractere 2 e caractere 5 (25) seguido de qualquer numero entre 0 e 5 (250 a 255)Recomendo que você dê uma estudada melhor em expressões regulares antes de seguir no seu script!On Tue, May 12, 2020 at 2:50 PM Marcelo Primo por (shell-script-pt) <address@hidden> wrote:_______________________________________________Boa tarde a todos,Estou implementando um loop simples em um script para facilitar algumas rotinas de trabalho, no entanto estou enfrentando uns problemas e já não sei onde mais atacar para que o resultado seja o esperado.Segue o código do script:#!/bin/bashwhile read hostsdoif [[ "$hosts" =~ 192\.168\.20[0-3]\.[1-254] || "$hosts" =~ 192\.168\.70\.[192-255] ||\"$hosts" =~ 172\.8\.96\.[128-255] || "$hosts" =~ 172\.220\.1\.[128-255] ]];thenecho "$hosts"echo "reservado"elseecho "$hosts"echo "IP válido"fidone < ipsO arquivo ips contém:192.168.200.200192.168.201.201192.168.202.202192.168.203.203172.8.96.129172.8.96.130172.220.1.197192.168.70.200Saída:Aparentemente, o que era para ser uma coisa simples, está me fazendo perder os poucos cabelos que me restam.192.168.200.200reservado192.168.201.201reservado192.168.202.202reservado192.168.203.203reservado172.8.96.129IP válido172.8.96.130IP válido172.220.1.197IP válido192.168.70.200reservadoAlguma sugestão?
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: address@hidden
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.--[]'s
Alfredo Tristão Casanova .͘.
Linux User #228230
tel: +55 61 9655 9619
[Prev in Thread] | Current Thread | [Next in Thread] |