我有一个.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