删除百分比符号

删除百分比符号

尝试从此 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) }'

相关内容