Ssh

為 bash 腳本去除 du -sk 中的“額外空格”?

  • May 9, 2012

我正在嘗試使用du -sk來獲取兩個文件夾的大小

dirsize_temp=`du -sk /folder/path/here`

然後是一個 if 語句來比較大小。唯一的問題是,當您執行命令時,它會返回類似

123456         /folder/path/here

我目前正在使用

dirsize=${dirsize_temp%%/*}

剝離“ /folder/path/here”部分,但我在擺脫空格時遇到問題。它們似乎不是實際的空格,因此“ ${dirsize//\ /}”或“ ${dirsize// /}”無法刪除它們,但它們仍然讓我無法比較兩個變數。是否有一些我遺漏的轉義字元,或者是一種更簡單的方法來獲得兩個文件夾的大小而無需在最後添加額外的東西?

你想用awk.

dirsize=`du -sk /folder/path/here | awk '{print $1}'`

它通常是一個選項卡。(大多數 posix 系統都有 hexdump,或者更簡潔地命名為 xxd,它會顯示列印的字元)。比 awk 更有效的解決方案是 ‘cut’:

dirsize=`du -sk /folder/path/here | cut -f1`

引用自:https://serverfault.com/questions/387652