【问题标题】:select the second line to last line of a file选择文件的第二行到最后一行
【发布时间】:2012-10-03 08:34:35
【问题描述】:

如何在 unix 中使用headtail 选择文件第二行到最后一行之前的行?

例如,如果我的文件有 15 行,我想选择从 2 到 14 的行。

【问题讨论】:

标签: linux unix head tail


【解决方案1】:
tail -n +2 /path/to/file | head -n -1

【讨论】:

    【解决方案2】:
    perl -ne 'print if($.!=1 and !(eof))' your_file
    

    测试如下:

    > cat temp
    1
    2
    3
    4
    5
    6
    7
    > perl -ne 'print if($.!=1 and !(eof))' temp
    2
    3
    4
    5
    6
    > 
    

    您也可以在 awk 中使用:

    awk '{a[count++]=$0}END{for(i=1;i<count-1;i++) print a[i]}' your_file
    

    【讨论】:

      【解决方案3】:

      要打印除第一行和最后一行之外的所有行,您也可以使用 awk

      awk 'NR==1 {next} {if (f) print f; f=$0}'
      

      这总是打印上一行。为了防止打印第一个,我们在NR 为1 时跳过该行。然后,将不打印最后一个,因为在读取时我们正在打印倒数第二个!

      测试

      $ seq 10 | awk 'NR==1 {next} {if (f) print f; f=$0}'
      2
      3
      4
      5
      6
      7
      8
      9
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 2016-04-08
        相关资源
        最近更新 更多