Logs

日誌文件中的日期字元串列到時間戳列

  • February 10, 2022

我有這樣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

您的date命令似乎允許-d選擇傳達日期/時間。試試喜歡

cut -d' ' -f-2 file | date +%s -f- | paste -d' ' - file | cut -d' ' -f1,4-
1644502514 lorem
1644502515 ipsum
1644502516 dolor

cut是來自輸入的日期/時間欄位,通過(read DATEFILE) 選項將它們提供給date命令,然後將其返回到輸入文件,然後輸出舊的日期/時間欄位。-f``paste``cut

引用自:https://unix.stackexchange.com/questions/690133