fxxkgw
V2EX  ›  问与答

linux 下多个文件合并问题

  •  
  •   fxxkgw · May 21, 2015 · 2253 views
    This topic created in 4092 days ago, the information mentioned may be changed or developed.

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

    6 replies    2015-05-21 21:01:15 +08:00
    Andiry
        1
    Andiry  
       May 21, 2015 via Android
    写123的时候同时append 4不就行了?
    fxxkgw
        2
    fxxkgw  
    OP
       May 21, 2015
    例子中的1 2 3 文件是从远程服务器通过rsync方式保存到本机的,所以无法在写1 2 3的时候顺道写一份都4
    lululau
        3
    lululau  
       May 21, 2015
    stat + dd
    clino
        4
    clino  
       May 21, 2015 via Android
    tail -f加管道说不定可以
    weyou
        5
    weyou  
       May 21, 2015
    写个脚本,监视文件123文件,如果任何文件大小有改动,读取增加的行到文件4,并记录下当前行数,以待下次读取。
    lululau
        6
    lululau  
       May 21, 2015   ❤️ 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 的用法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1093 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:34 · PVG 02:34 · LAX 11:34 · JFK 14:34
    ♥ Do have faith in what you're doing.