Printf 数字格式错误

Printf 数字格式错误

经过一些greping 和seding 后,我设法从 csv 单元格中获取一个值并将其分配给一个变量(DBR)。

这里有一些奇怪的发现

echo $DBR
echo "$DBR",
printf "%f" $DBR

输出:

9.1
,.1
: invalid numbersh: line 25: printf: 9.1

答案1

您的greping 和seding 未能从 的值中删除尾随回车符DBR(可能源自原始 CSV 文件中的 DOS 样式行结尾)。

前任。给定

$ printf -vDBR '9.1\r'
$ echo "$DBR" | xxd
00000000: 392e 310d 0a                             9.1..

然后

$ echo $DBR
9.1
$ echo "$DBR",
,.1
$ printf '%f\n' "$DBR"
: invalid number1
0.000000

相关内容