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

标签 bash macos bsd

我有一个输出这样的日期的流程(请注意日期前面的填充 (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'

返回:

Mon Jun 4 17:53:42 2018

但是当我尝试将其传递为日期格式时,我再次收到警告(就好像 sed 没有执行其操作一样)。

最佳答案

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

echo“2018 年 6 月 4 日星期一 17:53:42”| tr -d "\n"| tr -d "\n"| xargs -0 日期 -j -f "%a %b %d %T %Y"+%s

关于bash - 从日期字符串获取纪元时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50697523/

相关文章:

linux - 在文本文件中查找未确定的数值

linux - Git 推送到 master repo 然后将 dist 文件夹发送到特定路径(/www/site/v0.0.1)?

bash - 带有 bash 的 Yaml : escaping quotes in string

Python3 urllib.request 不会立即关闭连接

c - OS/X 和 Linux 之间的 tcphdr 字段名称更改

c++ - 为非 Windows 操作系统添加蓝屏死机

python - 何时使用阻塞和非阻塞函数?

regex - 用正则表达式查找替换文件内容

excel - AppleScript:设置 Microsoft Excel 单元格的背景颜色

python - 如何在 Python 路径之间切换?