0

我有这个文件.log

Sep 16 16:18:49 abcd 123 456
Sep 16 16:18:49 abcd 123 567
Sep 17 16:18:49 abcd 123 456
Sep 17 16:18:49 abcd 123 567

我想根据日期分区进行拆分,所以我得到了,

Sep_16.log

Sep 16 16:18:49 abcd 123 456
Sep 16 16:18:49 abcd 123 567

Sep_17.log

Sep 17 16:18:49 abcd 123 456
Sep 17 16:18:49 abcd 123 567

我在论坛中搜索,它应该是 usingcsplit和 regex ^.{6},但我得到的答案只是将 regex 用作分隔符,这不是我想要的。

另外,我想为每个日期分区拆分 10k 行,因此文件名将类似于 Sep_17_part001.log,然后将使用诸如前缀和后缀选项之类的东西。

有人知道这样做的完整命令吗?如果我在一个日志上做这一次的事情,我怎样才能让它每天运行,而不用 csplit 覆盖前几天?

4

1 回答 1

0

所以最后,我决定在搜索csplit文档后创建一个简单的 Python 脚本,并没有找到适合我需要的东西。

就像是,

with open(args.logfile) as f:
    for line in f:
        timef = datetime.strptime(str(datetime.utcnow().year) + line[:6], '%Y%b %d').strftime('%Y%m%d')
        t_dest_path = os.path.join(date_path, timef + '-browse.log')
        with open(t_dest_path, "a") as fdest:
            fdest.write(line)
于 2019-10-21T05:20:07.083 回答