0

我有两个变量,它们被分配给以下值

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

End_time=End time: [Wed Mar 13 00:18:12 2013]

现在我需要从 End_Time 中减去 Start_time。所以我需要首先删除其他字符串并将日期转换为可以执行减法的格式。

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

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

[Wed Mar 13 00:18:06 2013]

如何在不使用其他 sed 函数的情况下删除括号。

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

4

1 回答 1

0

sed 语句可以是:

sed -e 's|Start time: \[||;s/\]//'

使用 gnu date 您可以指定要使用的日期并转换为 unix 时间戳(用您的变量替换硬编码值):

bll@bll-desktop ~
$ a=$(date --date="Wed Mar 13 00:18:06 2013" '+%s')

bll@bll-desktop ~
$ b=$(date --date="Wed Mar 13 00:18:12 2013" '+%s')

然后在几秒钟内得到差异:

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

bll@bll-desktop ~
$ echo $d
6
于 2013-03-13T22:31:42.513 回答