Olá mestre Julio,
executei o shell puro, mas ele não tá filtrando a primeira parte da string,
estou pressupondo que seja alguma variavel de ambiente.
Segue os resultados da execução na minha máquina. Note que a segunda parte
da string ele consegue filtrar normalmente (depois do parenteses).
$ PIN
Fala Sérgio,
será que vc não reparou que houve uma quebra de linha gerada pelo meu
cliente e-mail? Veja só o passo-a-passo:
Prompt> PING='ping teste.com (69.36.226.134): 56 data bytes'
Prompt> echo $PING
ping teste.com (69.36.226.134): 56 data bytes
Prompt> P1=`echo ${PING#*(}`
Prompt> echo $P1
69
Olá Mestre Julio,
no meu sistema, o resultado usando shell puro não bateu conforme esperado:
$ PING='ping teste.com (69.36.226.134): 56 data bytes'; P1=`echo
${PING#*(}`; echo ${P1%)*}
ping teste.com (69.36.226.134
^
Este foi o Resultado...
Ou seja ele não fil
Re: [shell-script] selecionar substring
On Mon, 02 Oct 2006 17:57:49 -0300, Celso Viana <[EMAIL PROTECTED]>
wrote:
> Na linha abaixo, como é que pega somente o que está dentro dos
> parenteses (endereço IP)?
>
> PING teste.com (69.36.226.134): 56 data bytes
Opa,
Epa quero pegar uma carona na resposta do Sergio
2006/10/2, Sergio Nery Simoes <[EMAIL PROTECTED]>:
>
> Olá Alfredo,
> aproveitando o seu comentário, gostaria de alertar que nem sempre solução
> bonita é sinônimo de desempenho.
> Algumas vezes, executar comandos muito poderosos e processar express
humm...
$ echo 'PING teste.com (69.36.226.134): 56 data bytes' | tr '()' '\t\t' |
cut -f2
69.36.226.134
:wq!
On 10/3/06, Vanderlei <[EMAIL PROTECTED]> wrote:
>
> Ou:
>
> $~>ping -c1 www.google.com.br | sed -e 's/^.* (\(.*\)) f.*$/\1/g;q'
> 216.239.37.99
>
> Vanderlei
>
> Vanderlei <[EMAIL PROTEC
Ou:
$~>ping -c1 www.google.com.br | sed -e 's/^.* (\(.*\)) f.*$/\1/g;q'
216.239.37.99
Vanderlei
Vanderlei <[EMAIL PROTECTED]> escreveu:Bom dia,
$~>echo "PING teste.com (69.36.226.134): 56 data bytes" | sed -e
's/\(.*(\|).*\)//g'
69.36.226.134
Vanderlei
Celso Viana <[EMAIL PROTECTE
Bom dia,
$~>echo "PING teste.com (69.36.226.134): 56 data bytes" | sed -e
's/\(.*(\|).*\)//g'
69.36.226.134
Vanderlei
Celso Viana <[EMAIL PROTECTED]> escreveu:All,
Na linha abaixo, como é que pega somente o que está dentro dos
parenteses (endereço IP)?
PING teste.com (69.36.226.134):
Olá Alfredo,
aproveitando o seu comentário, gostaria de alertar que nem sempre solução
bonita é sinônimo de desempenho.
Algumas vezes, executar comandos muito poderosos e processar expressões
regulares complexas ao invés de uma solução mais simples ("as lusitanas")
pode acabar onerando mais o proce
heheheh
jeito lusitano
echo "PING teste.com (69.36.226.134): 56 data bytes" | cut -f2 -d\( | cut
-f1 -d\)
On 10/2/06, Humberto Pereira <[EMAIL PROTECTED]> wrote:
>
> On Mon, 02 Oct 2006 18:37:12 -0300, Celso Viana <[EMAIL PROTECTED]>
> wrote:
> > 2006/10/2, Humberto Pereira <[EMAIL PROTECTED]>:
On Mon, 02 Oct 2006 18:37:12 -0300, Celso Viana <[EMAIL PROTECTED]>
wrote:
> 2006/10/2, Humberto Pereira <[EMAIL PROTECTED]>:
> Humberto,
>
> Poderia traduzir o ...
> sed -r 's/^.*\((([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/'
A expressao pega tudo entre () q tenha 1 a 3 numeros seguido de ponto 4
vez
Na verdade redirecionei somente a saída de erro, para o caso do host não ser
encontrado.
Mas a saída padrão deveria serguir o pipe normalmente.
Tente remover o redirecionamento:
ping -c 1 www.google.com | head -n 1 | cut -d"(" -f2 | cut -d")" -f1
O único problema será quando ocorrer algum erro n
2006/10/2, Sergio Nery Simoes <[EMAIL PROTECTED]>:
>
>A forma usando dois cuts é assim:
>
> ping -c 1 www.google.com 2> /dev/null | head -n 1 | cut -d"(" -f2 | cut
> -d")" -f1
>
> Sergio.
>
>
>
> Em 02/10/06, Herbert Alexander Faleiros <[EMAIL PROTECTED]> escreveu:
> >
> > On Monday 02 Oc
2006/10/2, Humberto Pereira <[EMAIL PROTECTED]>:
>
>On Mon, 02 Oct 2006 17:57:49 -0300, Celso Viana <[EMAIL PROTECTED]>
> wrote:
> > Na linha abaixo, como é que pega somente o que está dentro dos
> > parenteses (endereço IP)?
> >
> > PING teste.com (69.36.226.134): 56 data bytes
> Opa,
>
A forma usando dois cuts é assim:
ping -c 1 www.google.com 2> /dev/null | head -n 1 | cut -d"(" -f2 | cut
-d")" -f1
Sergio.
Em 02/10/06, Herbert Alexander Faleiros <[EMAIL PROTECTED]> escreveu:
>
> On Monday 02 October 2006 17:57, Celso Viana wrote:
> > como é que pega somente o que está
> > d
On Monday 02 October 2006 17:57, Celso Viana wrote:
> como é que pega somente o que está
> dentro dos parenteses (endereço IP)?
sed -r 's/.+\((.+)\).+/\1/g'
-
Esta lista não admite a abordagem de outras liguagens de programaçã
egrep -o vai mostrar a string que 'casa' com a expressão regular
$ echo 'PING teste.com (69.36.226.134): 56 data bytes' | egrep -o
'[0-9.]{8,18}'
69.36.226.134
coloquei uma expressão simples, qq coisa composta por algo entre 8 e 18
caracteres 0 à 9 e . eu considero como um ip
outra forma é usar
On Mon, 02 Oct 2006 17:57:49 -0300, Celso Viana <[EMAIL PROTECTED]>
wrote:
> Na linha abaixo, como é que pega somente o que está dentro dos
> parenteses (endereço IP)?
>
> PING teste.com (69.36.226.134): 56 data bytes
Opa,
[EMAIL PROTECTED] analise]$ echo "PING teste.com (69.36.226.134): 56 data
18 matches
Mail list logo