我有几个包含数字的Fortran数据文件,格式如下:
-0.53D+02
我想将这些与简单的浮点数据结合起来,比如
-0.53
然后对它们进行排序,就像Unix sort
一样。
不幸的是sort
无法识别这种格式,所以我正在寻找一个简单的转换器,但在网上找不到任何东西。我考虑过Fortran脚本并将其从double precision
转换为float
,但我不太确定数字位数,这对Fortran来说总是有点乏味。
所以有人知道一个可以执行此操作的脚本,一个可以读取该格式的排序程序,或者甚至可能只是一个可能有帮助的简短sed
命令吗?我对sed不太好,所以我花了很长时间才弄明白......
答案 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