如何按天分隔月份的时间戳数据



我有一个.log文件,它在每个月初重新启动,每条消息都以以下时间戳格式开头:01-07-2016 00:00:00:868|

每天有数千条消息,我想创建一个简短的脚本,它可以确定日期何时增加,并将每个日期输出到仅包含当天数据的新文件中。 我不精通 bash,但我想使用 sed 或 awk,因为它对于自动化我的工作流程和创建报告非常有用。

下面的脚本会将输入日志文件拆分为多个文件,并将日期作为后缀添加到输入文件名中:

split_logfile_by_date

#!/bin/bash
exec < $1
while read line
do
    date=$(echo $line|cut -d" " -f 1)
    echo $line >> $1.$date
done

例:

$ ls
log
$ split_logfile_by_date log
$ ls
log  log.01-07-2016  log.02-07-2016  log.03-07-2016
awk '{log = FILENAME "." $1; print > log}' logfile

这会将所有01-07-2016记录写入文件logfile.01-07-2016

最新更新