如何用一些 Fortran 风格的 D+01 对数据文件进行排序?
How to sort datafiles with some numbers of Fortran-style D+01?
我有几个 Fortran 数据文件,其中包含格式如下的数字:
-0.53D+02
我想将这些与简单的浮点数据结合起来,例如
-0.53
然后对它们进行排序,就像 Unix sort
.
很遗憾 sort
无法识别这种格式,所以我正在寻找一个简单的转换器,但在网上找不到任何东西。我想到了一个 Fortran 脚本并将其从 double precision
转换为 float
,但我不太确定位数,这对于 Fortran 来说总是有点乏味。
那么有没有人知道可以执行此操作的脚本、可以读取该格式的排序程序,或者甚至可能只是一个可能有用的简短 sed
命令?我对 sed 不是很好,所以我花了很长时间才弄清楚如何...
我想你可以用这个:
sed 's/D/E/g' YourNumbersFile | sort -g
sed
命令将所有 D
s 更改为 E
s - 像这样阅读...... "substitute all Ds with Es, globally" .
sort
命令需要-g
选项来排序一般数字。
如果您的 sort
不接受 -g
开关,我想另一个选择可能是使用此 awk
重新格式化您的号码:
awk '{sub(/D/,"e");printf "%8.3f\n", }' YourNumbersFile | sort -n
我有几个 Fortran 数据文件,其中包含格式如下的数字:
-0.53D+02
我想将这些与简单的浮点数据结合起来,例如
-0.53
然后对它们进行排序,就像 Unix sort
.
很遗憾 sort
无法识别这种格式,所以我正在寻找一个简单的转换器,但在网上找不到任何东西。我想到了一个 Fortran 脚本并将其从 double precision
转换为 float
,但我不太确定位数,这对于 Fortran 来说总是有点乏味。
那么有没有人知道可以执行此操作的脚本、可以读取该格式的排序程序,或者甚至可能只是一个可能有用的简短 sed
命令?我对 sed 不是很好,所以我花了很长时间才弄清楚如何...
我想你可以用这个:
sed 's/D/E/g' YourNumbersFile | sort -g
sed
命令将所有 D
s 更改为 E
s - 像这样阅读...... "substitute all Ds with Es, globally" .
sort
命令需要-g
选项来排序一般数字。
如果您的 sort
不接受 -g
开关,我想另一个选择可能是使用此 awk
重新格式化您的号码:
awk '{sub(/D/,"e");printf "%8.3f\n", }' YourNumbersFile | sort -n