【问题标题】:Split File based on date prefix?根据日期前缀拆分文件?
【发布时间】:2020-02-12 22:20:29
【问题描述】:

我有这个文件.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

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

另外,我想为每个日期分区拆分 10k 行,所以文件名类似于 Sep_17_part001.log,然后将使用前缀和后缀选项。

有人知道执行此操作的完整命令吗?如果我在一个日志上执行一次此操作,我怎样才能让它每天运行,而不会 csplit 覆盖前几天?

【问题讨论】:

    标签: logging csplit


    【解决方案1】:

    所以最后,在搜索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)
    

    【讨论】:

      猜你喜欢
      • 2018-04-28
      • 1970-01-01
      • 2018-02-24
      • 2017-05-18
      • 1970-01-01
      • 2021-07-02
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多