Isto é um pouco complicado de controlar.
Normalmente quando faz-se um script voce tem que ter um padrao de resultados
que voce deseja filtrar para que nunca entre em alguma condição que voce nao
queira.
Ex:
$ cat time|awk -F"time=" '{ print $2 }' |cut -d"s" -f 1
11.078423
O awk coloca o delimitador em 'time=' e imprime a o que vem apos esse
delimitador ...$2... ($0 = todo conteúdo, $1 = antes do delim, $2 depois do
delim, etc) depois o cut coloca o delimitador no 's' e imprime o que vem
antes de 's'.
Existe diversas outras maneiras de fazer isso, mas ai eu te pergunto, todos
os resultados vão sair nesse padrão? Se for esse aí em cima serve, senão,
voce vai ter que tratar as exceções.
Abs
2011/2/22 Allison Vollmann <[email protected]>
> Você consegue fazer isso utilizando expressões regulares com egrep, sed,
> awk, perl, python ou qualquer outra linguagem de scripting, o mais simples
> ao meu ver seria uma combinação do egrep com o cut:
>
> # egrep -o "time=([0-9\.]+)" | cut -d '=' -f2
>
> --- Em *ter, 22/2/11, Harlei Liguori Marcelino <[email protected]>*escreveu:
>
>
> De: Harlei Liguori Marcelino <[email protected]>
> Assunto: [OFF TOPIC] Shell Script
> Para: "debianlista" <[email protected]>
> Data: Terça-feira, 22 de Fevereiro de 2011, 21:16
>
>
> Amigos,
>
> estou precisando terminar um shell script e para isso preciso localizar a
> palavra 'second' dentro de uma variável (que é o resultado de um teste de
> velocidade e vem com mais algumas informações), para assim que localizar
> pegar alguns caracteres antes, veja o exemplo:
>
> HTTP OK: HTTP/1.1 301 Moved Permanently - 776 bytes in 11.078 second
> response time |time=11.078423s;;;0.000000 size=776B;;;0
>
> Essa é a linha por exemplo... Quero apenas o numero 11.078, ou seja,
> preciso conseguir pegar as 6 casas anteriores ao 'S' da palavra 'second',
> mas, não consegui fazer esta linha no shell. Alguém conseguiria me ajudar?
>
> agradeço desde já
>
> att
>
> Harlei
>
>
>