2012-01-26 75 views
0

隨着命令:df -h | grep /dev/md/dsk/d0我得到以下結果:操縱的Linux diskfree輸出

/dev/md/dsk/d0 4.8G 4.0G 792M  84% 

我想操縱這個輸出得到792M

從理論上講,我可以找1〜 3位數後跟一個「M」得到792M

我試圖從正則表達式教程學習,但我絕對沒有線索如何開始並解決此問題。

+0

感謝您編輯本文以提高可讀性 – Ajin

回答

2

如果你只是需要走出第4單元,我會做:

df -h | grep /dev/md/dsk/d0 | awk '{ print $4 }' 
+3

當然,如果您有awk,您不需要grep:'df -h | awk'$ 1 ==「/ dev/md/dsk/d0」{print $ 4}'' –

+0

相反,由於awk的模式字段使用egrep風格的正則表達式,所以我說'grep'是多餘的,並且啓動一個額外的過程。 –

+0

我們似乎在交叉目的。你知道我沒有發表原來的問題,對吧? –

0

awk可能是這個最簡單的工具。

df -h | grep /dev/md/dsk/d0 | awk '{print $(NF-1)}' 

這將打印第二到最後一列(如果第一列中有空格,我從來沒有聽說過這樣的事情在/dev,但我不明白爲什麼它不可能發生;它是倒數第三位在我的df)或

df -h | grep /dev/md/dsk/d0 | awk '{print $4}' 

得到第四個字段。