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

linux 下多个文件合并问题

  •  
  •   fxxkgw · 2015-05-21 18:13:19 +08:00 · 1780 次点击
    这是一个创建于 3278 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设有三个文件1 2 3
    三个文件每几分钟增加一些内容(也就是写入一些字符),同时三个文件全部放到文件4中
    现在方法是直接cat > 4 方式,缺点是每次4的内容都要重新写 效率太低
    现在想变成 1 2 3 只把更新的内容写入4 有什么办法或者命令么?
    shell最好,谢谢。

    6 条回复    2015-05-21 21:01:15 +08:00
    Andiry
        1
    Andiry  
       2015-05-21 18:30:25 +08:00 via Android
    写123的时候同时append 4不就行了?
    fxxkgw
        2
    fxxkgw  
    OP
       2015-05-21 18:34:16 +08:00
    例子中的1 2 3 文件是从远程服务器通过rsync方式保存到本机的,所以无法在写1 2 3的时候顺道写一份都4
    lululau
        3
    lululau  
       2015-05-21 18:43:31 +08:00
    stat + dd
    clino
        4
    clino  
       2015-05-21 18:44:24 +08:00 via Android
    tail -f加管道说不定可以
    weyou
        5
    weyou  
       2015-05-21 18:45:59 +08:00
    写个脚本,监视文件123文件,如果任何文件大小有改动,读取增加的行到文件4,并记录下当前行数,以待下次读取。
    lululau
        6
    lululau  
       2015-05-21 21:01:15 +08:00   ❤️ 1
    dd if=new_1 bs=1 iseek=$(stat -c%s old_1) >> 4
    dd if=new_2 bs=1 iseek=$(stat -c%s old_2) >> 4
    dd if=new_3 bs=1 iseek=$(stat -c%s old_3) >> 4

    手边没有 Linux,记不准 GNU stat 的用法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2860 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:16 · PVG 16:16 · LAX 01:16 · JFK 04:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.