【问题标题】:Extracting many leading lines out of a huge text file从巨大的文本文件中提取许多前导行
【发布时间】:2011-10-13 21:57:01
【问题描述】:

我有一个巨大的文本文件。我想提取它的前 532541 行并将它们存储在另一个文件中。用鼠标选择文本并按 ctrl+c 显然不是一个可行的解决方案。

我应该怎么做?

【问题讨论】:

    标签: bash text emacs terminal


    【解决方案1】:
    head -n 532541 big-file > first-bit
    

    【讨论】:

      【解决方案2】:

      在 Emacs 中 M-C-SPCC-u532541C-nM-x写入区域。如果您经常这样做,请编写一个键盘宏来执行这些步骤。

      或者,您可以定义一个插入当前缓冲区文件名的函数,例如so。然后,M-!head -n 531541 F3> first-bit

      【讨论】:

        【解决方案3】:

        head 是完成这项工作的正确工具。使用 awk 或 sed,在目标行之后退出处理文件效率更高,因此不必读取文件其余无用的部分。

        sed '532541q' big > small
        awk '{print} NR==532541 {exit}' big > small
        

        【讨论】:

          【解决方案4】:
          awk 'NR<=532541' big > small
          awk '{if(NR<=532541) print; else exit}' big > small  #if the file is really huge
          sed -n '1,532541p' big > small
          sed '1,532541!d' big > small
          sed '532542,$d' big > small
          

          :) 玩得开心

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-11-13
            • 2011-11-21
            • 1970-01-01
            • 1970-01-01
            • 2015-09-07
            相关资源
            最近更新 更多