La ragione per cui questo accade è che la colonna attende di raccogliere il maggior numero possibile di input su cui basare le sue ipotesi di colonna. Non ha modo di sapere che il pattern di dati si ripete ogni secondo.
È possibile approssimare quello che si vuole fare per l'esecuzione di questo:
for i in 0 1 2 3 4 5 6 7 8 9; do iostat | column -t; sleep 1; done
EDIT
Grazie ad un paio di suggerimenti da Dennis:
for i in {0..9} ; do iostat 1 1 | column -t; sleep 1; done
Il l'unica differenza rispetto all'originale è quella della prima testata la linea r viene ripetuta ogni secondo. Un po 'di footwork con sed
o grep
potrebbe occuparsene.
fonte
2010-07-15 20:55:03
Per vmstat utilizzando la vostra proposta è possibile eseguire: "vmstat | sed -n '1,2p' | colonna -t; per i in 0 1 2 3 4 5 6 7 8 9; fare vmstat | column -t | sed -n '3p'; sleep 1; done "che fornisce un output simile ma formattato a" vmstat 1 10 ". Non c'è davvero modo di farlo in modo semplice? – dimba
@idimba: in Bash, puoi fare 'per i in {0..9}'. Puoi fare 'vmstat 1 1' in entrambi i posti. –
@idimba: Scusa, non ho familiarità con il formato vmstat, quindi non ero a conoscenza di come volevi guardare le intestazioni. Penso che il suggerimento di Dennis lo renda piuttosto semplice. Modificherò la mia risposta per riflettere i nostri migliori sforzi combinati. –