代码之家  ›  专栏  ›  技术社区  ›  Andrea Francia

如何编写每N行只输出一行的unix筛选器

  •  3
  • Andrea Francia  · 技术社区  · 17 年前

    line 1 
    line 2
    line 3
    line 4 
    line 5
    line 6
    line 7
    line 8
    line 9
    line 10
    

    如果有人告诉我如何编写仅每4行打印一次的脚本,则会更好,在上面的示例输入中:

    line 1
    line 5
    line 9
    
    4 回复  |  直到 17 年前
        1
  •  16
  •   mat    17 年前
    $ yes | cat -n | head -10 | awk 'NR % 4 == 1'
         1  y
         5  y
         9  y
    

    也就是说,你的答案是“ awk 'NR % 4 == 1' ".

        2
  •  2
  •   Stephen Darlington    17 年前
    awk '{ if ((NR-1) %4 ==0) print}'
    
        3
  •  1
  •   Keltia    17 年前
    awk 'NR%4 == 1 {print}'</etc/hosts
    

        4
  •  0
  •   plhn    9 年前
    sed -ne '1~4p’
    

    (GNU) sed . 未在OSX等设备上测试)