Bash 以科学计数法返回的数列?
Bash number sequence returned in scientific notation?
我正在尝试创建一个文件,其中每一行的所有数字都高达 7500 万。
我正在使用 Bash 在我的终端中输入:
seq 1 75000000 > myfile.csv
但是超过 100 万的任何东西都会变成科学记数法,我希望所有东西都是整数(即 7.31896e+07)
你知道如何实现吗?
观察这会产生整数:
$ seq 74999998 75000000
74999998
74999999
75000000
虽然这会产生浮点数:
$ seq -f '%.5g' 74999998 75000000
7.5e+07
7.5e+07
7.5e+07
seq
的输出格式由 -f
选项控制。
-f
选项如何应用于您的案例?一种可能是您的 shell 为 seq
定义了一个应用此选项的别名。例如:
$ alias seq="seq -f '%.5g'"
$ seq 74999998 75000000
7.5e+07
7.5e+07
7.5e+07
您可以通过 运行 bash 的内置 type
命令确定是否是这种情况:
$ type seq
seq is aliased to `seq -f '%.5g''
文档
来自 man seq
:
-f, --format=FORMAT
use printf style floating-point FORMAT
seq
可以采用 printf 风格的格式字符串来控制其输出。 f
格式的 "precision" 为 0(即小数点后没有任何内容,小数点本身就没有)应该做你想做的:
$ seq 74999998 75000000
7.5e+07
7.5e+07
7.5e+07
$ seq -f %1.0f 74999998 75000000
74999998
74999999
75000000
我正在尝试创建一个文件,其中每一行的所有数字都高达 7500 万。
我正在使用 Bash 在我的终端中输入:
seq 1 75000000 > myfile.csv
但是超过 100 万的任何东西都会变成科学记数法,我希望所有东西都是整数(即 7.31896e+07)
你知道如何实现吗?
观察这会产生整数:
$ seq 74999998 75000000
74999998
74999999
75000000
虽然这会产生浮点数:
$ seq -f '%.5g' 74999998 75000000
7.5e+07
7.5e+07
7.5e+07
seq
的输出格式由 -f
选项控制。
-f
选项如何应用于您的案例?一种可能是您的 shell 为 seq
定义了一个应用此选项的别名。例如:
$ alias seq="seq -f '%.5g'"
$ seq 74999998 75000000
7.5e+07
7.5e+07
7.5e+07
您可以通过 运行 bash 的内置 type
命令确定是否是这种情况:
$ type seq
seq is aliased to `seq -f '%.5g''
文档
来自 man seq
:
-f, --format=FORMAT use printf style floating-point FORMAT
seq
可以采用 printf 风格的格式字符串来控制其输出。 f
格式的 "precision" 为 0(即小数点后没有任何内容,小数点本身就没有)应该做你想做的:
$ seq 74999998 75000000
7.5e+07
7.5e+07
7.5e+07
$ seq -f %1.0f 74999998 75000000
74999998
74999999
75000000