将特定文本从一个文件复制到另一个文件

将特定文本从一个文件复制到另一个文件

我有一个如下所示的文本文件:

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 -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

相关内容