我有一个如下所示的文本文件:
Start find in flight queries
2018-03-05 15:50:02,069:INFO:######################################
Start find completed queries
2018-03-05 15:50:02,070:INFO:Starting new HTTPS connection (1): server060
2018-03-05 15:50:02,083:DEBUG:"GET /queries?json HTTP/1.1" 401 0
2018-03-05 15:50:02,084:INFO:Resetting dropped connection: server060
2018-03-05 15:50:02,095:DEBUG:"GET /queries?json HTTP/1.1" 200 19059
2018-03-05 15:50:02,099:INFO:######################################
Start find in flight queries
日期和时间变化每 5 分钟一次。我需要复制最后日期和时间到另一个文件。在此示例中为 2018-03-05 15:50:02。任何建议表示赞赏。我过去使用过一些正则表达式,但不擅长。
答案1
tac
+grep
解决方案:
tac input.txt | grep -Eo -m1 '^[0-9]{4}(-[0-9]{2}){2} [0-9]{2}(:[0-9]{2}){2}' > last_date.txt
答案2
使用awk没有管道;)
awk -F'[ ,]' '
/^[0-9]{4}-[0-9]{2}-[0-9]{2}\s+[0-9]{2}:[0-9]{2}:[0-9]{2}/
{var=$1" "$2}
END{print var}
' file