我有一些像這樣的輸出ls -alth
:如何在命令行中使用正則表達式切割?
drwxr-xr-x 5 root admin 170B Aug 3 2016 ..
drwxr-xr-x 5 root admin 70B Aug 3 2016 ..
drwxr-xr-x 5 root admin 3B Aug 3 2016 ..
drwxr-xr-x 5 root admin 9M Aug 3 2016 ..
現在,我想解析出170B
部分,這顯然是在人類可讀的格式大小。我想用cut
或sed
這樣做,因爲我不想使用比所需更復雜/難以使用的工具。
理想我希望它有足夠能力去處理伴隨大小B
,M
或K
後綴,並通過1
,1000000
和1000
據此相應地成倍增加。不過,我還沒有找到一個好的方法來做到這一點。
我已經嘗試了一些事情沒有真正瞭解的最佳途徑:
ls -alth | cut -f 5 -d \s+
我希望將工作,因爲我可以只限定它一個或多個空格。
但這並不奏效。我如何提供一個正則表達式分隔符cut
?還是有更簡單的方法來從ls -alth
只提取文件的大小?
我使用的是CentOS6.4
爲什麼不'LS -alth結果|切-d」「-f5' ..? –
我其實從來沒有聽說過這個選擇。這是行不通的,因爲它需要分割任意數量的空間。你的例子只在一個空間分裂。我在問題中增加了幾條示例行,以使其更加清晰。 – guimption
好吧...那麼'ls -alth | awk'{print $ 5}''?這在缺省情況下適用於任何空白區域。順便說一下,即使在我的Debian中進行了剪切工作。 –