$ df -h | grep "/dev/sd.." | awk '{print $5}'
12%
1%
$ df -h | grep "/dev/sd.." | awk '{printf $5"\n"}'
awk: run time error: not enough arguments passed to printf("12% ") FILENAME="-" FNR=1 NR=1
哪里错了? 不是一样吗
因为你的结果是21%,但是printf "21%"会报错,要想用printf输出'%',需要printf '%%',所以改为$ df -h | grep "/dev/sd.." | awk '{printf $5"%""\n"}'就ok了
我的为什么行啊?
printf 是格式化输出,需要制定输出格式
df -h | grep "/dev/sd.." | awk '{printf "%s\n",$5}'