cat text.txt | awk '{$3=$3/10000000000; print}' > result.txt
我从文本文档中剪下第三列,其中长正整数(最多 20 个字符):
11367086573885593600
10334651978543290368
10197533251863449600
如何做到这一点,以便在将数字除以 10000000000 时它不会给出
1.13671e+09
1.03347e+09
1.01975e+09
并给出:
1136708657.3885593600
1033465197.8543290368
1019753325.1863449600
如果这在 awk 中是不可能的,那么如何以不同的方式分别进行呢?
作为一种选择(可能不是最好的)可以考虑
dc:dc— 具有反向波兰表示法和任意小数精度的计算器。在大多数 GNU/Linux 发行版上,它是bc.该命令
k设置精度。该命令
/将堆栈上的两个数字相除。该命令
p打印一个数字。对于小于 1 的值
dc,它不会输出前导零,AFAIK 让它以您想要的格式打印数字的正常方法不是,但您可以在管道中添加另一个通用锤子,sed:或
awk(为了不依赖于两个实用程序):