como definir vários espaços em branco (ex: tabs) como delimitadores no 'cut' do bash

0

Eu quero recuperar a porcentagem de uso / livre da CPU da saída do mpstat. O bash cut pode ser usado para recuperar tais detalhes, mas eu não sei qual deve ser o delimitador viz.

[idlecool@archbitch proc]$ mpstat | grep "all" | cut -d '$x' -f11

qual deve ser $ x para que eu possa pular espaços em branco e selecionar o valor correspondente a% ocioso?

Saída do mpstat:

[idlecool@archbitch proc]$ mpstat 
Linux 2.6.36-ARCH (archbitch)   01/14/11    _i686_  (2 CPU)

19:58:53     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
19:58:53     all    5.51    0.01    2.96    0.84    0.00    0.01    0.00    0.00   90.66
    
por Idlecool 14.01.2011 / 15:38

2 respostas

2

Ferramenta errada.

mpstat | awk '$2 == "all" { print $11 }'
    
por 14.01.2011 / 15:43
5

O delimitador deve ser espaço. No entanto, mpstat usa vários espaços entre os campos impressos para alinhamento. Portanto, você também precisa de tr para espremer vários delimitadores.

mpstat | grep -F all | tr -s ' ' | cut -d ' ' -f 11

Nota: O sinalizador -F para o grep não é essencial neste caso, embora eu o use habitualmente sempre que o padrão não for um regex, pois acelera significativamente as pesquisas em grandes entradas.

    
por 11.10.2012 / 15:54