【发布时间】:2020-09-10 01:49:37
【问题描述】:
我正在使用 bash,我想将格式为“08-Sep-2020 07:08:49”的日期列表转换为时间戳。
我发现the way 在循环中逐行逐行执行此操作,但如果可能的话,我想在不使用循环的情况下转换整个文件。我在想像“cat /tmp/file | <some_command>”这样的一行代码
示例文件内容:
08-Sep-2020 03:07:04
08-Sep-2020 02:20:46
08-Sep-2020 23:25:52
目前我正在使用
date -d "09-Sep-2020 06:52:44" +%s
我想获取另一个文件或相同的文件:
1599530824
1599528046
1599603952
【问题讨论】:
-
或者这个:
xargs -n1 date +%s -d <infile >outfile -
很好,感谢您的帮助。它有效。命令在行之间添加“1599519600”,但这不是问题,我可以用 sed -n '/1599519600/!p' 剪切这条线
-
有一个文件是不寻常的;只是一堆日期,只想要一堆秒的输出,所以如果这不是全部你的输入文件包含然后edit您的问题,以提供更具代表性的示例输入/输出,以便我们为您提供帮助。
-
到目前为止发布的答案中没有任何内容在转换为 YMMV 时间戳时将 TZ 考虑在内。您描述的比较在映射时间戳的 awk 脚本中比在调用 shell 脚本中的外部进行更有用。您可能想问一个更大范围的后续问题,包括您要尝试使用这些时间戳做什么以及您的输入/输出的真实情况。