Cla*_*Lag 4 string bash shell date
我有一个包含字符串的文件:
2014-11-22 08:15:00
Run Code Online (Sandbox Code Playgroud)
... 代表Nov 22 2014 @ 8:15 AM
.
我想解析这个字符串并将其与 BASH 中的日期函数一起使用以与当前日期进行比较。我有比较日期的代码,但两个日期都是由 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"
Run Code Online (Sandbox Code Playgroud)
我最终遇到如下错误:
日期:参数“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
Run Code Online (Sandbox Code Playgroud)
最后,我希望做到以下几点:
有任何想法吗?谢谢。
这是因为您使用了单引号,因此不会扩展变量的值。
你可以说:
mydate=$(<filewithstring)
date -d"$mydate" "+%Y-%m-%d %H:%M:%S"
^ ^
Run Code Online (Sandbox Code Playgroud)
注意也是mydate=$(<filewithstring)
将文件读入变量的更优化方法。
归档时间: |
|
查看次数: |
13880 次 |
最近记录: |