awk:如何剪切两个字段的相似部分,然后得到剩余部分的差异?
假设我有 2 个以微秒为单位显示纪元时间的字段:
1318044415123456,1318044415990056
我想做的是:
- 从两个字段中剪切公共部分:“1318044415”
- 获取其余部分的差异:990056 - 123456 = 866600
我为什么这样做这?因为 awk 使用浮点 IEEE 754 而不是 64 位整数,所以我需要获取 2 个事件的纪元时间差(以微秒为单位)。
感谢您的帮助!
编辑:
最后我发现 Awk 在 Snow Leopard 10.6.8 上可以处理的最大数量:9007199254740992
。
试试这个:echo '9007199254740992' | awk -F ',' '{print $1 + 0}'
Awk 的版本为 20070501
(由 awk --version
生成)
Let say I have 2 fields displaying epoch time in microseconds:
1318044415123456,1318044415990056
What I wanted to do is:
- Cut the common part from both fields: "1318044415"
- Get the difference of the remaining parts: 990056 - 123456 = 866600
Why am I doing this? Because awk uses floating point IEEE 754 but not 64 bit integers and I need to get difference of epoch time of 2 events in microseconds.
Thanks for any help!
EDIT:
Finally I found the largest number Awk could handle on Snow Leopard 10.6.8: 9007199254740992
.
Try this: echo '9007199254740992' | awk -F ',' '{print $1 + 0}'
The version of Awk was 20070501
(produced by awk --version
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个满足您要求的 awk 脚本:
Here is an awk script that meets your requirements: