Bash

從列表中獲取最後一分鐘的日期行

  • June 27, 2014

如果我有一個包含使用者列表及其上次登錄日期的輸入文件,我如何使用sort | awk函式選擇最後一分鐘的行?

日期以+%H:%M:%S格式書寫。

例子:

George 12:00:15 
Max    12:01:03 
Kate   10:32:54 
Adam   08:21:47 
Andrea 12:00:10

目前日期是12:01:04

if 函式的結果將是第 1 行、第 2 行和第 5 行

GNU dateawk:_

awk -F'[ :]+' -v l=$(date -d '1 minutes ago' "+%H:%M") -v c=$(date "+%H:%M") '
   $2":"$3==l || $2":"$3==c
' file
George 12:33:15 
Max    12:33:03 
Andrea 12:33:10

使用 GNU awk:

awk 'BEGIN{t=strftime("%T",systime()-60)}$NF >= t'

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