2017-10-10 63 views

回答

1

喜歡的東西

grep input_filename -e "End Time:" | sed -E 's/End Time:\[\w{3}\s(\w{3})\s([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\s([0-9]{4}).*$/\1-\2-\6 \3:\4:\5/' | sed 's/jan/01/ig; s/feb/02/ig; s/mar/03/ig; s/apr/04/ig; s/may/05/ig; s/jun/06/ig; s/jul/07/ig; s/aug/08/ig; s/sep/09/ig; s/oct/10/ig; s/nov/11/ig; s/dec/12/ig' > output_filename 

這被分成三個命令。首先是grep提取你所需要的時間就行了。二是sed重新安排的日期到輸出格式,但要注意一個月仍然是一個字符串。第三個命令是另一個sed呼叫,這個替換月份名稱與號碼。

注意事項:

  • 上述正則表達式是相當嚴格,簡單的偏差會失敗
  • 無需正則表達式的東西分成兩個sed調用,這可以在一個
  • 或處理就此而言,整個過程可以更優雅地蟒蛇,perl的,等處理
+0

非常感謝@BurnsBA。讓我檢查一次。 – user3901666