问答详情
源自:2-4 shell字符截取命令之awk命令(下)

printf和print

$ 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

 哪里错了? 不是一样吗

提问者:慕虎9238834 2016-04-24 22:04

个回答

  • 七喜__
    2020-09-03 17:14:43

    因为你的结果是21%,但是printf  "21%"会报错,要想用printf输出'%',需要printf  '%%',所以改为$ df -h | grep "/dev/sd.." | awk '{printf $5"%""\n"}'就ok了 

  • wulongtao
    2016-05-25 21:40:39

    http://img.mukewang.com/5745ab1400017f2c04770041.jpg

    我的为什么行啊?

  • 痕六
    2016-04-24 23:53:12

    printf 是格式化输出,需要制定输出格式

    df -h | grep "/dev/sd.." | awk '{printf "%s\n",$5}'