Bash

數字的 Printf 格式錯誤

  • March 1, 2019

經過一番greping 和seding 之後,我設法從 csv 單元格中獲取一個值並將其分配給一個變數(DBR)。

這裡有一些奇怪的發現

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

輸出:

9.1
,.1
: invalid numbersh: line 25: printf: 9.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

引用自:https://unix.stackexchange.com/questions/503751