String 如何将bash字符串转换为日期?
我有一个包含字符串的文件:String 如何将bash字符串转换为日期?,string,bash,shell,date,String,Bash,Shell,Date,我有一个包含字符串的文件: 2014-11-22 08:15:00 。。。代表2014年11月22日上午8:15 我想解析这个字符串,并将其与BASH中的date函数一起使用,以与当前日期进行比较。 我有比较日期的代码,但这两个日期都是由BASH生成的,很容易格式化和比较。但是,我不能使用字符串(从另一个系统收集)进行比较 我试过这样的方法: $ mydate=$(cat filewithstring);date -d $mydate $ mydate=$(cat filewithstring
2014-11-22 08:15:00
。。。代表2014年11月22日上午8:15
我想解析这个字符串,并将其与BASH中的date函数一起使用,以与当前日期进行比较。
我有比较日期的代码,但这两个日期都是由BASH生成的,很容易格式化和比较。但是,我不能使用字符串(从另一个系统收集)进行比较
我试过这样的方法:
$ mydate=$(cat filewithstring);date -d $mydate
$ mydate=$(cat filewithstring);date -d '$mydate'
$ mydate=$(cat filewithstring);date -d $mydate "+%Y-%m-%d %H:%M:%S"
我最终会出现如下错误:
日期:参数“08:00:00”缺少前导“+”;当使用
选项指定日期,任何非选项参数必须为格式
以“+”开头的字符串*
……或者
日期:额外操作数'+%Y-%m-%d%H:%m:%S'
我知道如果我显式输入字符串,它可以正常工作:
$ date -d '2014-11-22 08:15:00'
Sat Nov 22 08:15:00 EST 2014
最后,我希望做到以下几点:
- 从“其他”服务器捕获并收集文件中的日期/时间字符串
- 读取文件中的字符串
- 将字符串中的日期/时间与当前日期/时间进行比较
- 输出类似“12分钟前处理的此事件”
有什么想法吗?谢谢。这是因为您使用单引号,因此变量的值不会展开 你可以说:
mydate=$(<filewithstring)
date -d"$mydate" "+%Y-%m-%d %H:%M:%S"
^ ^
mydate=$(双引号突出显示非常好+1正是我需要的。然后我将其转换为date-d“$mydate”+%s,并与我的其他脚本进行比较。效果非常好。谢谢。