【问题标题】:tail -f, but only every 1000th row [duplicate]tail -f,但仅每 1000 行 [重复]
【发布时间】:2020-02-23 19:15:27
【问题描述】:
tail -f myfile.log

非常好,但如果您有一个大文件,您可能只想显示每 n 行

所以输出将显示第 1 行、第 1001 行、第 2001 行等等。

这是可能的还是需要将输出链接到sedawk 或其他东西?

【问题讨论】:

    标签: linux bash tail


    【解决方案1】:

    使用 awk:

    $ awk 'NR%1000==1'
    

    每 3 次采样一次:

    $ seq 1 10 | awk 'NR%3==1'
    1
    4
    7
    10
    

    【讨论】:

    • seq -w 10000 | awk 'NR%1000==1' ?
    【解决方案2】:

    你可以使用下面的命令来获取它

    $> seq 1 4000 | awk 'NR%1000-1==0' # or awk 'NR%1000==1'
    1
    1001
    2001
    3001
    
    $> seq 1 4000  >> file
    $> cat file |   awk 'NR%1000-1==0'
    1
    1001
    2001
    3001
    
    $> tail -f -n 40000 file  | awk 'NR%1000-1==0'                                                                                                                                                  (2.6.3)
    1
    1001
    2001
    3001
    

    【讨论】:

      【解决方案3】:

      使用 GNU sed:

      seq 1 4000 | sed -nu '1~1000p'
      

      输出:

      1 1001 2001年 3001

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-03
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        • 2010-11-02
        • 1970-01-01
        • 2011-06-28
        相关资源
        最近更新 更多