Bash awk 命令混乱

Bash Awk command confusion

我正在检查一段代码,我无法完全理解它:

var1=`awk -F , '{printf "%.0f\n", *17/1000}' $somefile`;

假设它从文件中接收到的数字是 1000,它将它乘以 17 再除以 1000,但在此之前,是这样的:"%.0f\n" 我知道其余的计算是如何进行的,但这部分让我感到困惑。 据我了解,它正在计算一些小数并打印换行符。 一个完整解释 awk 命令的答案将不胜感激:D

它在计算后将小数点位数设置为零(截断数字)。您可以找到更多信息 here

您可以通过输入

自行尝试
awk -F, '{printf "%.0f\n", *17/1000}'

在命令行上,它会为每个输入的行转换您的输入,但也许ps这会更直观。 (Control-D 退出)

awk -F, '{printf "%.0f\n", }'

ps。请注意,这相当于整数格式 %d 或 %i(无小数点)