V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Devin
V2EX  ›  Linux

如何使新的 log 输出放在前面?

  •  
  •   Devin · Dec 15, 2015 via iPhone · 3547 views
    This topic created in 3791 days ago, the information mentioned may be changed or developed.
    假设多次成功运行 test.sh >> abc.log 输出 log 如下:
    1 OK!
    2 OK!
    3 OK!
    4 OK!
    5 OK!

    在不修改 test.sh 的前提下,如何使新的 log 输出放在前面,变成如下形式:
    5 OK!
    4 OK!
    3 OK!
    2 OK!
    1 OK!

    PS: 不是要对 abc.log 进行二次处理,是对 test.sh 的输出进行处理
    13 replies    2015-12-24 13:04:52 +08:00
    terrancy
        1
    terrancy  
       Dec 15, 2015   ❤️ 1
    文件指针在最后面就是第一种,文件指针在最前面就是第二种.
    raysonx
        2
    raysonx  
       Dec 15, 2015 via Android   ❤️ 1
    往前插入非常影響效率,每次寫入都要重建文件。這是文件系統決定的。
    建議還是用追加方式輸出日誌,然後用 tac 讀取
    gamexg
        3
    gamexg  
       Dec 15, 2015 via Android
    @terrancy 修改文件指针会覆盖老内容。我记得文件系统只能在后面追加,无法在前面插入内容啊。
    knightdf
        4
    knightdf  
       Dec 15, 2015   ❤️ 1
    把 abc.log 换成你自己写的一个 FIFO 队列。。。
    jarlyyn
        5
    jarlyyn  
       Dec 15, 2015
    为啥不是对显示 log 的方式进行处理呢……

    tac+1
    Devin
        6
    Devin  
    OP
       Dec 15, 2015 via iPhone
    @jarlyyn 有些场景,比如说把服务器的 log 文件下载到客户端查看,但客户端是 win 不支持 tac 命令。。。不过权衡下还是用追加的好了
    jarlyyn
        7
    jarlyyn  
       Dec 15, 2015   ❤️ 1
    test.sh | tac >> abc.log
    Devin
        8
    Devin  
    OP
       Dec 15, 2015 via iPhone
    @knightdf 这样的话输入到数据库再排序可能更简捷
    Devin
        9
    Devin  
    OP
       Dec 15, 2015 via iPhone
    @jarlyyn 不对,单次执行的输出是这样的
    1 OK!
    这里 tac 没意义😂
    jarlyyn
        10
    jarlyyn  
       Dec 15, 2015
    还有就是为了做日志的话,完全可以

    tar abc.log |gzip> abcrev.log.gz

    数据生成的时候没必要去做这些特殊操作吧?
    Devin
        11
    Devin  
    OP
       Dec 15, 2015 via iPhone
    @jarlyyn 一开始 Google 没搜到答案,觉得奇怪难道没人这么用?看了 2 楼才知道
    matrix67
        12
    matrix67  
       Dec 15, 2015
    我就知道有人会说这个是 X-y problem[1]。

    [1].http://xyproblem.info/


    颇有 hack news 风范。
    songco
        13
    songco  
       Dec 24, 2015
    目前的文件系统不支持这么玩...所以效率是个问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1017 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 18:02 · PVG 02:02 · LAX 11:02 · JFK 14:02
    ♥ Do have faith in what you're doing.