Text-Processing

如何獲取文件日誌的最近三個日期?

  • September 3, 2018

如何列印下一個輸出的最後三個日期:

User;month/day/year

   user1:01/01/2015
   user1:01/01/2015
   user1:01/01/2015
   ...
   user1:01/09/2018
   user1:01/08/2018
   user1:01/07/2018
   user1:01/04/2016
   user1:01/02/2016
   user1:01/01/2016

在這種情況下(2018 年日期)

編輯:

我有下一個帶有 awk 的命令:

awk '{ print $1":" substr( $0,285,291 )}' $file_input | awk '{ print $1}' | sort -n -r

期望的輸出:

   user1:01/09/2018
   user1:01/08/2018
   user1:01/07/2018

在這裡,先按YYYY部分排序,然後按mm/dd詞法排序。

這將分別是第二個分隔欄位的第 7到第 10個字元和第 1到第5個字元,所以::

<file sort -r -b -t: -k2.7,2.10 -k 2.1,2.5 | head -n 3

(這裡添加一個-b以允許(並忽略)周圍的空白:

考慮使用這樣的排序:

sort -rt/ -k3n -k1.11n -k2n < input | head -3

這將基於 3 個基於/分隔符的關鍵欄位對行進行排序:首先是年份,然後是月份(欄位 1,跳過使用者名和冒號),然後是欄位 2——全部按數字排序。僅輸出最後tail -3(最新)3 行/日期。

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