【问题标题】:Command Line Script to Delete Header Row from a number of TXT files从多个 TXT 文件中删除标题行的命令行脚本
【发布时间】:2010-08-27 09:58:03
【问题描述】:

从一大组 (10k+) 文本文件中删除第一行文本的最佳方法是什么。

【问题讨论】:

    标签: batch-file shell windows-scripting


    【解决方案1】:

    如果 PowerShell 不是一个选项,您可以使用 more 命令:

    more [file] +2 > [new file]
    

    将其粘贴在 for 循环中,然后将 [new file] 重命名为 [file],您将得到减去第一行的文件。

    不漂亮,但应该可以。

    【讨论】:

      【解决方案2】:

      如果你可以在你的系统中安装TAIL

      tail -n +2 filename > finalfilename
      

      显示除第一行以外的所有文件名。

      在我看来,Windows CMD 并不是最好的“终端”。但是,您不需要 tail 命令。正如 Patrick Cuff 所说,您可以使用基本相同的 more 命令。

      我认为这是使用内置命令的最佳答案。

      如果你对编程有点了解,你可以做一个小程序,做你想做的事,然后在 bat 文件中调用它。

      此外,您可以使用其他 Windows 终端,例如 cygwinpowershellconsole,它们具有更灵活的内置命令来执行此类操作。

      【讨论】:

      • 通过 cygwin 安装会获得很多这样的工具。对于我在文件中;做尾巴 -n +2 $i > $i_noheader ;完成
      • 是的,但是Patric Cuff的答案基本相同,并且是内置在windows中的:P。如果你想安装一些新的 shell,我想有些人更喜欢安装 PowerShell 或 Console 而不是 Cygwin
      【解决方案3】:

      如果使用 PowerShell 是您可以从这篇文章中采用的选项:Remove Top Line of Text File with Powershell

      【讨论】:

        【解决方案4】:

        下载sed for windows。然后这样做

        c:\test> sed -i.bak "1d" file
        

        使用 for 循环来迭代文件

        【讨论】:

          猜你喜欢
          • 2013-10-14
          • 2015-08-07
          • 2018-06-16
          • 1970-01-01
          • 2010-09-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多