pegar somente um numero de um string [RESOLVIDO]

1. pegar somente um numero de um string [RESOLVIDO]

Guilherme
guino_luis

(usa Ubuntu)

Enviado em 21/12/2009 - 10:20h

Seguinte,
eu estou dando um cat em um arq de log e uso o cut para pegar somente uma parte da linha, que é um numero, mas pode ser um numero de 4 3 2 ou 1 caracter. gostaria de saber como que eu pego somente o numero no caso de 1 caracter, do jeito que eu deixei esta pegando o numero e mais o resto dos outros 3 caracteres que nao tem nada a ver com o que eu quero, mas que vem pq eu pego uma sequencia de 4 caract, pois tem numero que pode ter 4. quero saber por exemplo como fazer para pegar o numero e o resto, tipo depois do espaço eliminar deixando so o numero. Quando so tem um caracter, ele pega o numero mais uns treco, (ex: "9 [T"). nesse caso quero somenteo 9 e descartar o espaço e o [T seguido do espaço.
como posso fazer.
grato

Guilherme


  


2. Re: pegar somente um numero de um string [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 21/12/2009 - 10:54h

Coloque aqui toda a linha do lig onde contém a informação que você precisa para ajudarmos.

Mas creio que com awk ou sed consiga isso!


3. Re: pegar somente um numero de um string [RESOLVIDO]

Douglas Giorgio Fim
douglas.giorgio

(usa Fedora)

Enviado em 21/12/2009 - 13:12h

coloca a linha inteira aew

fica melhor nos podermos te ajudar


4. Re: pegar somente um numero de um string [RESOLVIDO]

Guilherme
guino_luis

(usa Ubuntu)

Enviado em 21/12/2009 - 13:30h

então,
INFO 2009-12-21 12:24:12,516 Numero de pacotes recebidos: 5 [Timer-1] --> esta linha tem apenas o caracter 5, portanto faço um cat com cut pegando do 5 mais 3 caracteres ficando "5 [T".
INFO 2009-12-21 12:50:15,709 Numero de pacotes recebidos: 4090 [Timer-1] --> já nessa linha não há problemas pq tem 4 caracteres o numero que é 4090, ai ele nãopega o "[T".
gostaria de algo que pegasse somente o número sem os espaços e aqueles caracteres depois do espaço na primeira INFO.
algo que substitua o cut, ou algo que retire os caracteres e espaço da variavel que nao quero depois do numero.

aguardo
vlw


5. Re: pegar somente um numero de um string [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 21/12/2009 - 13:47h

Use o awk, a sintaxe seria assim:

awk '{print $1}'

Onde o número é a coluna que deseja.


6. Re: pegar somente um numero de um string [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 21/12/2009 - 13:52h

Bom...

Deixei a preguiça de lado e testei, o comando completo seria:

cat tmp.txt | awk '{print $8}'

E vai retornar o valor de cada linha.

Como vai utilizar esses valores que serão retornados?

Um por um, somente vai salvar em um arquivo?


7. Re: pegar somente um numero de um string [RESOLVIDO]

Guilherme
guino_luis

(usa Ubuntu)

Enviado em 21/12/2009 - 14:03h

Primeiro eu jogo em um arquivo txt, ai eu pego as duas ultimas linhas que seria os dois ultimos numeros e comparo um com o outro para ver se nao esta igual, pois nao pode estar igual senao esta travado, para eu poder restartar a aplicacao caso esteja travado


8. Re: pegar somente um numero de um string [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 22/12/2009 - 12:54h

Bom ... primeiro só pra ajudar no aprendizado, você pode sim usar o cut ao invés do awk ... seria: cat arq.log | cut -d" " -f8.
Apesar de que eu gosto muito do AWK, mas só pra você saber que dá pra usar o cut.

Bom, quanto ao resto, talvez isso ajude:

# vvl.sh
# verifica travamento
quant_ant="a"
tail -2 arq.log | while read line
do
quant=`echo $line | cut -d" " -f8`
if [ "$quant" -eq "$quant_ant" ]; then
echo "!!! ATENCAO !!! - APLICACAO TRAVADA"
fi
quant_ant="$quant"
done




9. Re: pegar somente um numero de um string [RESOLVIDO]

Guilherme
guino_luis

(usa Ubuntu)

Enviado em 23/12/2009 - 14:09h

Valeu cara, funcionou do seu jeito!!
até mais






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts