微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在UNIX中将“19-FEB-12”这样的string转换为纪元date

在UNIX中如何将时间毫秒数转换为datestring如下:

19-FEB-12 16-FEB-12 05-AUG-09

我需要这个比较这些date与服务器上的当前时间。

如何在单个文本文件中将tiff图像编译为xyz坐标?

在Bash中按照特定模式生成随机string的最佳方法

disown和注销后可以看到输出到stdout吗?

使用netcat(nc)作为HTTP代理服务器和监视器

如何在Linux中只使用fs和bash来从IPv4地址获取接口名称

从时代开始,将日期转换为秒数:

date --date="19-FEB-12" +%s

当前时代:

date +%s

所以,由于你的日期是过去的:

Now=`date +%s` THEN=`date --date="19-FEB-12" +%s` let DIFF=$Now-$THEN echo "The difference is: $DIFF"

使用BSD的date命令,你需要

$ date -j -f "%d-%B-%y" 19-FEB-12 +%s

与GNU的区别date :

-j防止date尝试设置时钟

输入格式必须用-f明确设置

输入日期是一个常规的参数,而不是一个选项(即-d )

如果没有指定日期的时间,请使用当前时间而不是午夜。

这是使用GNU awk的一种方法。 跑步:

awk -f script.awk file

script.awk内容

BEGIN { n = systime() FS="-" } { t = mktime(sprintf("%d %d %d %d %d %d","20" $3,convert($2),$1,0)) printf "%.1f days agon",(n - t) / 60 / 60 / 24 } function convert(m) { return(((index("JANFEBMaraPRMAYJUNJULAUGSEPOCTNOVDEC",m) - 1) / 3) + 1) }

结果:

358.6 days ago 361.6 days ago 1286.6 days ago

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐