![删除百分比符号](https://linux22.com/image/208018/%E5%88%A0%E9%99%A4%E7%99%BE%E5%88%86%E6%AF%94%E7%AC%A6%E5%8F%B7.png)
尝试从此 shell 脚本中删除百分比符号 '%'
df -h | awk '$NF=="/"{printf "Percentage: %s \n", $5}'
输出:
Percentage: 2%
想要使输出像这样
Percentage: 2
对不起,我的英语不好
答案1
强制将 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 }'
答案2
还有一种删除%
符号的方法:
df -h | awk '$NF == "/" { printf "Percentage: %s\n", int($5) }'