小编Tha*_*nos的帖子

处理没有“e”的科学格式

我试图操作一个包含科学记数法数字但没有e符号的文件,即1.2e+3写为1.2+3.

我想到的最简单的事情awk是替换+e+,使用该gsub函数并在新文件中进行计算。减号情况也是如此。因此可以使用以下命令进行简单的修复

awk '{gsub("+", "e+", $1); print $1, $2, $3, $4, $5}' file_in
Run Code Online (Sandbox Code Playgroud)

并在所有列中执行相同操作。

然而,该文件还包含负数,这使事情变得更加复杂。一个示例文件可以在下面看到

 1.056000+0 5.000000-1 2.454400-3 2.914800-2 8.141500-6
 2.043430+1 5.000000-1 2.750500-3 2.698100-2-2.034300-4
 3.829842+1 5.000000-1 1.969923-2 2.211364-2 9.499900-6
 4.168521+1 5.000000-1 1.601262-2 3.030919-2-3.372000-6
 6.661784+1 5.000000-1 5.250575-2 3.443669-2 2.585500-5
 7.278104+1 5.000000-1 2.137055-2 2.601701-2 8.999800-5
 9.077287+1 5.000000-1 1.320498-2 2.961020-2-1.011600-5
 9.248130+1 5.000000-1 3.069610-3 2.786329-2-6.317000-5
 1.049935+2 5.000000-1 4.218794-2 3.321955-2-5.097000-6
 1.216283+2 5.000000-1 1.432105-2 3.077165-2 4.300300-5
Run Code Online (Sandbox Code Playgroud)

关于如何使用这样的文件进行操作和计算的任何想法?

awk text-processing

8
推荐指数
1
解决办法
811
查看次数

标签 统计

awk ×1

text-processing ×1