如何使用一些Fortran风格的D + 01对数据文件进行排序?

时间:2015-08-12 09:39:31

标签: bash sed fortran converter dataformat

我有几个包含数字的Fortran数据文件,格式如下:

-0.53D+02

我想将这些与简单的浮点数据结合起来,比如

-0.53

然后对它们进行排序,就像Unix sort一样。

不幸的是sort无法识别这种格式,所以我正在寻找一个简单的转换器,但在网上找不到任何东西。我考虑过Fortran脚本并将其从double precision转换为float,但我不太确定数字位数,这对Fortran来说总是有点乏味。

所以有人知道一个可以执行此操作的脚本,一个可以读取该格式的排序程序,或者甚至可能只是一个可能有帮助的简短sed命令吗?我对sed不太好,所以我花了很长时间才弄明白......

1 个答案:

答案 0 :(得分:1)

我认为你可以使用它:

sed 's/D/E/g' YourNumbersFile | sort -g

sed命令将所有D更改为E s - 按此读取... “用Es代替所有D,全局”

sort命令需要-g选项来排序一般数字

如果您的sort不接受-g切换,我想其他选项可能是使用此awk重新格式化您的数字:

awk '{sub(/D/,"e");printf "%8.3f\n", $1}' YourNumbersFile | sort -n