bash - 从日期字符串获取纪元时间
问题描述
我有一个输出这样的日期的过程(注意当天(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 "Mon Jun 4 17:53:42 2018" | tr -d "\n" | xargs -0 date -j -f "%a %b %d %T %Y" +%s
推荐阅读
- c# - EventWaitHandle.Set,等待超时和释放线程数
- hlsl - 将像素着色器 asm 转换为 HLSL
- python - 从 TWS IB 提取基本数据的最后一段代码缺失
- javascript - 如何修复错误:null 不是对象(评估 'bleManager.start')?
- arrays - 如何在 Arduino 代码的函数参数中使用向量(数组)?
- python - 仅将熊猫数据框中的最后一行附加到新数据框中
- javascript - JavaScript 中 GUID/UUID 函数的语法解释
- r - 如何将 mutate_at 与 ifelse 一起使用
- kubernetes - 验证集群 - api/v1/nodes: http: 服务器向 HTTPS 客户端提供 HTTP 响应
- sharepoint - SharePoint 计算列 - 获取动态列 ID