printf没有打印过去'。'在字符串中

时间:2015-12-01 14:47:11

标签: unix awk formatting printf

我在unix系统上使用printf时遇到问题。每次我尝试打印以下内容时都会抛出错误

printf "%-15s %-15.2s" "Total Acounts:\nChecks=$" checks

检查应该是小数,但我已经尝试将其打印为浮点数和小数,并得到相同的错误。

fatal: not enough arguments to satisfy format string
    `%-15s %-15.2sTotal Acounts:
    Checks=$2135.92'
                ^

我已经在这方面工作了一段时间并且无法弄清楚,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:5)

这不是你在awk中调用printf的方式。您缺少表示参数的逗号。

您只给了printf一个格式字符串("%-15s %-15.2s""Total Acounts:\nChecks=$"checks的值的连接)。

从错误消息中可以看到,该消息将整个字符串显示为格式字符串,并在字符串中包含checks的值。

你可能意味着:

printf "%-15s %-15.2s", "Total Acounts:\nChecks=$", checks
#---------------------^---------------------------^

尽管%-15s并没有真正对你做任何有用的事情,因为“总记录次数:\ nChecks = $”超过15个字符。