我想使用列實用程序格式輸出iostat在對齊的列。vmstat和列
我要運行是這樣的:
vmstat 1 10 | column -t
但產量僅appers 10秒後信息(vmstat完成其工作),而不是每一秒。
任何想法?
我想使用列實用程序格式輸出iostat在對齊的列。vmstat和列
我要運行是這樣的:
vmstat 1 10 | column -t
但產量僅appers 10秒後信息(vmstat完成其工作),而不是每一秒。
任何想法?
發生這種情況的原因是,列等待收集儘可能多的輸入,以便根據其列猜測作爲基礎。它無法知道數據模式每秒重複一次。
可以接近你想要做什麼,運行以下:
for i in 0 1 2 3 4 5 6 7 8 9; do iostat | column -t; sleep 1; done
編輯
感謝丹尼斯夫婦的建議:
for i in {0..9} ; do iostat 1 1 | column -t; sleep 1; done
的與原來唯一的區別在於第一個heade r線每秒重複一次。使用sed
或grep
的一些步法可以解決這個問題。
我想這是你試圖完成:
vmstat 1 10 | while read line
do
echo "$line" | column -t
done
這將只在每次迭代中運行一次'column -t',因此跨輸出「行」的格式將不會被解決。 – slm 2015-05-12 14:00:48
試試這個
vmstat 1 10 >> /tmp/vmout.txt; tail -f /tmp/vmout.txt
對於vmstat的使用您的建議,您可以運行「的vmstat | sed的-n '1,2p' | column -t; for i in 0 1 2 3 4 5 6 7 8 9; do vmstat | column -t | sed -n'3p'; sleep 1; done「,它給出類似的格式化輸出到」vmstat 1 10 」。真的沒有辦法簡單地做到這一點嗎? – dimba 2010-07-15 22:04:31
@idimba:在Bash中,你可以在{0..9}'中爲我做'。你可以在兩個地方執行'vmstat 1 1'。 – 2010-07-16 00:34:47
@idimba:對不起,我不熟悉vmstat格式,所以我不知道你是如何想看看標題的。我認爲丹尼斯的建議使其非常簡單。我會編輯我的答案以反映我們的最佳努力。 – 2010-07-16 07:08:18