Shell

刪除百分比符號

  • July 8, 2022

試圖從此 shell 腳本中刪除百分比符號“%”

df -h | awk '$NF=="/"{printf "Percentage: %s \n", $5}'

輸出:

Percentage: 2% 

想要這樣的輸出

Percentage: 2

對不起,我的英語不好

強制將 in 的值解釋$5為數值。這可以通過在使用以下%s格式列印之前向值添加零來完成:

df -h | awk '$NF == "/" { printf "Percentage: %s\n", 0+$5 }'

或者,通過使用%d將值格式化為十進制整數而不是字元串:

df -h | awk '$NF == "/" { printf "Percentage: %d\n", $5 }'

或者,在列印之前顯式刪除字元串中的最後一個字元:

df -h | awk '$NF == "/" { printf "Percentage: %s\n", substr($5,1,length($5)-1) }'
df -h | awk '$NF == "/" { sub(".$","",$5); printf "Percentage: %s\n", $5 }'

或者,只需刪除%輸入中的所有字元:

df -h | tr -d % | awk '$NF == "/" { printf "Percentage: %s\n", $5 }'
df -h | awk '{ gsub("%","") } $NF == "/" { printf "Percentage: %s\n", $5 }'

引用自:https://unix.stackexchange.com/questions/709091