我有log.txt
这样的示例输出:
...
10-Feb-2022 15:15:14.099 lorem
10-Feb-2022 15:15:15.133 ipsum
10-Feb-2022 15:15:16.233 dolor
...
我预计过滤后的 log.txt 的输出将是
...
1644480914 lorem
1644480915 ipsum
1644480916 dolor
...
我已经弄清楚如何将日期字符串转换为时间戳
date --date='10-Feb-2022 15:15:14.099' +"%s"
Output:
1644480914
我的大脑仍然不明白如何将该日期命令应用于 log.txt。
另外我如何管道该日期命令?
printf "10-Feb-2022 15.15.17.012 water" | date --date=<what must i put here?> + "%s"
我期望流水线命令的输出是相同的,不同的是不干扰其他列,即1644480917 water
答案1
您的date
命令似乎允许选择-d
传达日期/时间。尝试像
cut -d' ' -f-2 file | date +%s -f- | paste -d' ' - file | cut -d' ' -f1,4-
1644502514 lorem
1644502515 ipsum
1644502516 dolor
它cut
是输入中的日期/时间字段,date
通过-f
(读取 DATEFILE)选项将它们提供给命令,paste
将其返回到输入文件,并cut
输出旧的日期/时间字段。