Awk
由於 uptime 命令的輸出更改,無法獲取第 n 列數據
下面是 Solaris 的正常執行時間輸出,我從中提取倒數第三列:
uptime 8:30pm up 23 day(s), 17:46, 5 users, load average: **2.79**, 1.79, 1.53
我總是需要在上面以粗體突出顯示倒數第三列,即
2.79
echo '8:30pm up 23 day(s), 17:46, 5 users, load average: 2.79, 1.79, 1.53' | awk '{ print substr($10, 1, length($10)-1) }' Output: 2.79
但有時它會在正常執行時間輸出
18 hr(s)
而不是17:46
如下所示時失敗:echo '8:44pm up 23 day(s), 18 hr(s), 5 users, load average: 1.08, 1.12, 1.22' | awk '{ print substr($10, 1, length($10)-1) }' Output: average
一個簡單的解決方案可能是搜尋最後一列減去 3 的列,即最後一列的第三列,因為最後三列始終是數字並且不會改變。但是,我不確定如何做。
你能建議嗎?
閱讀
man cut
並執行以下操作:uptime | cut -d, -f4 | cut -d: -f2
你可以試試這個。
awk -F ':' '{ print 0+substr($NF, 1, -1+index($NF,","))}'