Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 需要在Unix中将2013年3月13日星期三00:18:06转换为日期时间_Shell_Unix_Unix Timestamp - Fatal编程技术网

Shell 需要在Unix中将2013年3月13日星期三00:18:06转换为日期时间

Shell 需要在Unix中将2013年3月13日星期三00:18:06转换为日期时间,shell,unix,unix-timestamp,Shell,Unix,Unix Timestamp,我有两个变量,它们被赋值如下 Start_time=Start time: [Wed Mar 13 00:18:06 2013] End_time=End time: [Wed Mar 13 00:18:12 2013] 现在我需要从结束时间中减去开始时间。因此,我需要首先删除其他字符串,并将日期转换为可以执行减法运算的格式 为了删除字符串,我使用了以下sed函数 echo "Start time: [Wed Mar 13 00:18:06 2013]" | sed -e 's|Start

我有两个变量,它们被赋值如下

Start_time=Start time: [Wed Mar 13 00:18:06 2013]

End_time=End time: [Wed Mar 13 00:18:12 2013]
现在我需要从结束时间中减去开始时间。因此,我需要首先删除其他字符串,并将日期转换为可以执行减法运算的格式

为了删除字符串,我使用了以下sed函数

echo "Start time: [Wed Mar 13 00:18:06 2013]" | sed -e 's|Start time:||'

[Wed Mar 13 00:18:06 2013]
如何在不使用其他sed函数的情况下删除括号


另外,有人能告诉我如何将其转换为日期格式,以便执行减法运算。

sed语句可以是:

sed -e 's|Start time: \[||;s/\]//'
使用gnu date可以指定要使用的日期并将其转换为unix时间戳 (用您的变量替换硬编码的值):

然后以秒为单位计算差值:

bll@bll-desktop ~
$ d=$(($b - $a))

bll@bll-desktop ~
$ echo $d
6
bll@bll-desktop ~
$ d=$(($b - $a))

bll@bll-desktop ~
$ echo $d
6