fxxkgw
V2EX  ›  问与答

linux 下多个文件合并问题

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