2014-03-13 50 views
0

我在刪除最後一個字符時遇到問題。我有這樣的命令:如何刪除Bash中的最後一個字符?

df -h | awk 'NR>1 {print$1,$2,$3,$4}' 

其產生:

directoryname1 40K 0 9.0G 
directoryname2 90K 5.0M 78G 
directorynamen 0 62M 70G 

我發現我可以通過使用+0

該命令刪除字母(K,M,G):

df -h | awk 'NR>1 {print$3+0}' 

收益率:

0 
5.0 
62 

我該如何得到與沒有K,M,G的第一個命令相同的結果?

+0

它正在與我''$ 4 = $ 4 + 0;打印$ 1,$ 2,$ 3,$ 4}' – fedorqui

+4

爲什麼要在使用'-h'的時候去掉單位?你永遠不會知道數字的意思。 –

回答

2

你有自我回答了自己的問題:

df -h | awk 'NR>1 {print$1,$2+0,$3+0,$4+0}' 

它的工作原理,因爲字符串是數字,非數字字符串:

df -h | awk 'NR>1 {print$1,substr($2,1,length($2)-1), 
          substr($3,1,length($3)-1), 
          substr($4,1,length($4)-1)}' 
1

我與@AdrianFrühwirth - 你爲什麼要這麼做那?或者說,what are you trying to do?

如果你想用同一單位和不輸出單位把所有的df號碼,只需使用df沒有-h得到的字節數。如果您需要KiB,MiB,GiB或其他方法,您可以分別使用-BK,-BM-BG,或者參閱man df中的SIZE格式信息。

相關問題