專家們,
我是腳本世界的新手
我試圖保留超過 30 天的線路。該檔案包含以下幾行
Server1 last patched on Mon Oct 11 09:50:47 2021
Server2 last patched on Fri Jun 3 07:53:36 2022
Server3 last patched on Fri Jun 3 11:58:26 2022
Server4 last patched on Fri Jun 17 12:58:59 2022
Server5 last patched on Fri Marc 17 04:12:51 2022
Server6 last patched on Mon Oct 17 23:08:24 2022
謝謝您的幫助。
期望保留超過 30 天的線路。我試過這個
awk -v dat="Sun Oct 04 00:00:00 2022" -F':' '$5<dat' list.txt
給出相同的結果
Server1 last patched on Mon Oct 11 09:50:47 2021
Server2 last patched on Fri Jun 3 07:53:36 2022
Server3 last patched on Fri Jun 3 11:58:26 2022
Server4 last patched on Fri Jun 17 12:58:59 2022
Server5 last patched on Fri Marc 17 04:12:51 2022
Server6 last patched on Mon Oct 17 23:08:24 2022
預期結果是
Server1 last patched on Mon Oct 11 09:50:47 2021
Server2 last patched on Fri Jun 3 07:53:36 2022
Server3 last patched on Fri Jun 3 11:58:26 2022
Server4 last patched on Fri Jun 17 12:58:59 2022
Server5 last patched on Fri Marc 17 04:12:51 2022
uj5u.com熱心網友回復:
困難在于必須將時間戳決議為實際時間值:您不能僅將它們作為字串進行比較并期望按時間順序排列。
這里有一點perl:
perl -MTime::Piece -lane '
BEGIN {$start = (localtime) - 86400 * 30}
$t = Time::Piece->strptime("@F[4..8]", "%a %b %d %T %Y");
print if $t < $start;
' file
Server1 last patched on Mon Oct 11 09:50:47 2021
Server2 last patched on Fri Jun 3 07:53:36 2022
Server3 last patched on Fri Jun 3 11:58:26 2022
Server4 last patched on Fri Jun 17 12:58:59 2022
Server5 last patched on Fri Mar 17 04:12:51 2022
請注意,我必須進行編輯Marc以Mar滿足 strptime 的%b月份縮寫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527932.html
