Im新到AWK,並且試圖找出如何獲得所有結果,其中第一列等於變量,日期是大於另一個unix時間戳格式化變量。我使用'last'作爲我的命令。輸出示例如下:
bob pts/2 172.6.14.37 Fri July 24 12:43 - 12:17 (9+23:34)
bob pts/2 172.6.14.37 Fri July 24 10:03 - 12:17 (5+23:34)
bob pts/2 172.6.14.37 Tue June 4 17:55 - 09:42 (8+15:46)
bob pts/2 172.6.14.37 Tue Mar 4 17:55 - 09:42 (8+15:46)
tim pts/1 172.6.14.37 Mon Mar 3 16:22 - 17:30 (1+01:08)
root pts/1 172.6.14.37 Thu Feb 27 09:38 - 09:56 (4+00:18)
所以我想要所有結果'bob'在第一列。我有
last -f /var/log/btmp | awk '$1 == "bob"'
這給了我所有bobs失敗的登錄。現在,我需要重新篩選,其中提交日期大於說「20140723145100
」像
last -f /var/log/btmp | awk '$1 == "bob" && $4 >= $DATE'
假設$ DATE = 20140723145100,結果我想應該是:
bob pts/2 172.6.14.37 Fri July 24 12:43 - 12:17 (9+23:34)
bob pts/2 172.6.14.37 Fri July 24 10:03 - 12:17 (5+23:34)
這是很笨拙的解析'週四02月27日09:38 - 09:56'在AWK或shell尤其是當'year'解析失蹤。 – anubhava
@anubhava我完全同意。現在我正在努力尋找其他解決方案。 – Kiksy