【发布时间】:2017-01-06 04:38:23
【问题描述】:
我有一个千兆字节的大日志文件,格式如下:
2016-02-26 08:06:45 Blah blah blah
我有一个日志解析器,它根据日期将单个文件日志拆分为单独的文件,同时从原始行修剪日期。
我确实想要某种形式的tee,这样我就可以看到这个过程有多远了。
问题是这种方法速度慢得让人麻木。有没有办法在 bash 中快速做到这一点?还是我必须编写一个小 C 程序才能做到这一点?
log_file=server.log
log_folder=logs
mkdir $log_folder 2> /dev/null
while read a; do
date=${a:0:10}
echo "${a:11}" | tee -a $log_folder/$date
done < <(cat $log_file)
【问题讨论】:
-
首先你没用过[ cat ]。
-
完成
-
我想我可能应该扫描文件,直到日期更改,然后将
head | tail一次将每个块全部写入磁盘。
标签: bash shell logging scripting text-parsing