como analisar a saída do comando watch para os últimos 5 dígitos?

1

Do comando

  

assista -n1 "ifconfig eth0 | grep GiB". Eu tenho saída abaixo,

Agora eu só quero os últimos 5 dígitos antes (GiB). Eu escrevi um regex para ele e parece funcionar

  

(\ d {1,4}) (?!. * \ d) \ sGiB

O único problema é que não posso usá-lo com o comando que mostrei acima? Estou usando o ubuntu qualquer ajuda

    
por asadz 21.05.2013 / 16:34

1 resposta

3

Você não iria analisar o comando watch, você poderia analisar qualquer comando que estivesse sendo executado. Eu pesquisei sua pesquisa para corresponder a uma gama maior de resultados possíveis a partir do ifconfig:

$ ifconfig eth0 | grep -Eo '[0-9\.]+ [PTGMK]i?B'
164.8 GB
142.6 GB

Isso é possível graças ao argumento -E do grep, que permite uma sintaxe mais ampla e -o , que só gera strings correspondentes.

Se você quiser fazer um loop, você pode, mas você tem que envolvê-lo em um shell para que o pipe seja interpretado corretamente:

watch -x sh -c "ifconfig eth0 | grep -Eo '[0-9\.]+ [PTGMK]i?B'"

Mas na minha opinião, isso não é muito útil, pois é ... watch é realmente bom apenas para uma pessoa real assistindo a tela. Se for esse o caso, está tudo pronto, mas se você quiser fazer algo com esses números regularmente, provavelmente está usando a ferramenta errada.

    
por Oli 21.05.2013 / 16:47