删除第一行文本文件

时间:2009-03-01 22:17:19

标签: windows batch-file cmd scripting text-files

我需要一个删除文本文件中第一行的cmd脚本。方案如下:我每天从FTP获取一个txt文件,问题是它在顶部附带空白行,然后是文件的标题。由于我将该文件自动导入访问表,因此该空行会导致我出现问题。

因此,我需要一个删除空白行并保存文件的脚本。

6 个答案:

答案 0 :(得分:27)

Windows /命令提示符:

more +1 filename.ext > otherfilename.ext

这似乎工作正常,但似乎这也将制表符转换为多个空格。 在导入postgres之前,我需要删除制表符分隔文件的第一行。 由于更多的标签自动转换为空格而失败...

答案 1 :(得分:7)

您没有指定平台。以下是在任何* NIX环境(和Windows + Cygwin)中执行此操作的方法:

sed -i~ 1d target-file

答案 2 :(得分:6)

在没有额外工具的Windows中:

findstr /V /R "^$" filename.whatever

无需额外工具

答案 3 :(得分:5)

要删除第一行,我会使用

tail -n +2 source-file > target-file

如果您想在Windows上使用此功能,请下载gnu utils以获取tail命令。 +2表示“从第二行开始”。

答案 4 :(得分:4)

我注意到一些评论询问如何使用Preet Sangha的解决方案。由于我没有足够的代表添加评论,我想在这里发布更完整的解决方案。

您可以使用Preet Sangha的解决方案,如下所示。此脚本将创建一个没有输入文件第一行的新文本文件。

findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt

答案 5 :(得分:1)

我今天需要做类似的事情,这就是我想出的:

FOR /F "tokens=* skip=1" %A IN ('type "input_file.ext"') DO @echo %A>>"output_file.ext"

这比more +1解决方案更有优势,因为选项卡字符将被保留。但是,对于大文件,此方法比其他文件慢很多。此外 - 领先的空间将被左侧修剪,这可能是也可能不是问题。