我试图创建一个文件,每行的所有数字都增加了7500万。
我正在使用Bash在我的终端中输入:
seq 1 75000000 > myfile.csv
但是超过一百万的东西变成了科学记数法,我希望所有东西都是整数(即7.31896e + 07)
你知道如何实现这个目标吗?
答案 0 :(得分:2)
seq
可以使用printf样式的格式字符串来控制其输出。具有"精度的f
格式" 0(即小数点后面没有任何内容,小数点本身除外)应该做你想做的事情:
$ seq 74999998 75000000
7.5e+07
7.5e+07
7.5e+07
$ seq -f %1.0f 74999998 75000000
74999998
74999999
75000000
答案 1 :(得分:1)
注意这会产生整数:
$ 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