从日期字符串获取纪元时间

Getting Epochal Time from Date String

我有一个输出这样日期的过程(注意日期 (4) 前面的填充):

Mon Jun  4 17:53:42 2018

我想得到纪元时间,所以我试过:

echo "Mon Jun  4 17:53:42 2018" | xargs -0 date -j -f "%a %b %d %T %Y" +%s

确实 有效,但我留下了烦人的东西:

Warning: Ignoring 1 extraneous characters in date string (
)

我可以忍受这个警告,但我已经尝试使用 sed 删除双倍间距:

echo "Mon Jun  4 17:53:42 2018" | sed -E 's/\ +/\ /g'

哪个returns:

Mon Jun 4 17:53:42 2018

但是当我尝试将其转换为日期格式时,我再次收到警告(好像 sed 没有做它的事情)。

问题不是空格,而是换行符。我删除了 sed 并替换为 tr -d "\n" 以删除违规字符:

echo "Mon Jun 4 17:53:42 2018" | tr -d "\n" | xargs -0 date -j -f "%a %b %d %T %Y" +%s