AWK 从记录 1 中减去数字记录 2
我无法解决一个非常简单的问题。我的数据文件如下所示:
Crap Crap 0.123456789D+09 Crap Crap
Crap Crap 0.123456798D+09 Crap Crap
我需要使用 AWK 减去第三列中的数字;第二行减去第一行。
我尝试过:
cat crap.txt | awk '{ A[NR-1] = $3 } END { print A[1] - A[0] }'
没有成功。可能是号码格式不对? (AWK 可以用 D
而不是 E
来读取科学记数法吗?)
救命!
编辑:
正如社区所知,AWK 不理解使用 D
而不是 E
的科学记数法(就像许多 Fortran 输出产生的那样)。需要将D
替换为E
,然后才能进行任何数学运算。
I cannot solve a very simple problem. My data file looks like:
Crap Crap 0.123456789D+09 Crap Crap
Crap Crap 0.123456798D+09 Crap Crap
I need to use AWK to subtract the number in the third column; the SECOND row minus the FIRST row.
I tried:
cat crap.txt | awk '{ A[NR-1] = $3 } END { print A[1] - A[0] }'
to no success. Maybe the format of the number is wrong? (Can AWK read scientific notation with D
instead of E
?)
Help!
EDIT:
Just so the community knows, AWK does not understand scientific notation which uses D
instead of E
(like many Fortran outputs produce). It is necessary to replace the D
for E
and then carry on any mathematical operation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以即时更改符号...
You could change the notation on the fly...
awk
无法读取 D 表示法(顺便问一下,它是什么意思?)。这是一个例子:第一个是错误的。
awk
cannot read D-notation (what does it mean by the way?). Here is an example:The first one is wrong.