V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolloves
V2EX  ›  问与答

请教一个文本处理的方法!

  •  
  •   coolloves · 2016-04-13 08:01:39 +08:00 · 2033 次点击
    这是一个创建于 3148 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有些文本内容如下: a1 b1 a1 c1 a1 d1 ... a2 b2 a2 c2 a2 d2 ......

    每天大约有几百万条这种格式的日志,目前想处理下,把以下两条第二列的内容合并, a1 b1 a1 c1

    做成以下格式的 a1 b1 c1 a1 d1 ...... a2 b2 c2 a2 d2 ......

    有什么可行的办法呢.多谢大家

    第 1 条附言  ·  2016-04-13 09:08:54 +08:00
    真不好意思,日志的格式换行没有打出来日志的格式如下:
    20160412xxxx id1 内容 a \n
    20160412xxxx id1 内容 b \n
    20160412xxxx id1 内容 c \n
    20160412xxxx id1 内容 d \n
    ........
    20160412xxxx id2 内容 a1 \n
    20160412xxxx id2 内容 b1 \n
    20160412xxxx id2 内容 c1 \n
    20160412xxxx id2 内容 d1 \n
    ........
    20160412xxxx id3 内容 a2 \n
    20160412xxxx id3 内容 b2 \n
    20160412xxxx id3 内容 c2 \n
    20160412xxxx id3 内容 d2 \n
    ........

    目前想实现:
    20160412xxxx id1 内容 a + 内容 b \n
    20160412xxxx id1 内容 c \n
    20160412xxxx id1 内容 d \n
    ........
    20160412xxxx id2 内容 a1 +内容 b1 \n
    20160412xxxx id2 内容 c1 \n
    20160412xxxx id2 内容 d1 \n
    ........
    20160412xxxx id3 内容 a2 +内容 b2 \n
    20160412xxxx id3 内容 c2 \n
    20160412xxxx id3 内容 d2 \n
    ........


    其中内容 ax bx 都是非常固定的格式.
    6 条回复    2016-04-13 11:30:51 +08:00
    coolloves
        1
    coolloves  
    OP
       2016-04-13 08:02:04 +08:00
    换行怎么没打出来......
    Devin
        2
    Devin  
       2016-04-13 08:45:39 +08:00 via iPhone
    用 awk 应该可以
    楼主 append 把问题描述清楚吧
    coolloves
        3
    coolloves  
    OP
       2016-04-13 09:11:01 +08:00
    @Devin awk 我一般处理单行居多,如何合并特定的两行,我不太会
    我目前是用 rsyslog 来做日志格式处理的,但是也是基于单行
    clino
        4
    clino  
       2016-04-13 09:15:19 +08:00
    写几行 python 吧
    irenicus
        5
    irenicus  
       2016-04-13 09:32:00 +08:00 via Android
    python 或者 perl
    wvuu
        6
    wvuu  
       2016-04-13 11:30:51 +08:00
    awk '{if($2 != a){b=$3" "$4;c=1}else{print(c != 0)?$1" "$2" "b" "$3" "$4:$0;c=0}a=$2}'

    这个命令只能按照你目前的格式处理,如果你的日志根这个格式不一样,结果会有问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5895 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:59 · PVG 09:59 · LAX 17:59 · JFK 20:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.