18

我需要一个 cmd 脚本来删除我的文本文件中的第一行。场景如下:我每天从 FTP 获取一个 txt 文件,问题是它的顶部有空行,然后是文件的标题。由于我将该文件自动导入到访问表中,因此该空白行给我带来了问题。

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

4

6 回答 6

29

窗口/命令提示符:

more +1 filename.ext > otherfilename.ext

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

于 2009-03-01T22:32:47.657 回答
9

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

sed -i~ 1d target-file
于 2009-03-01T22:19:31.790 回答
7

要删除第一行,我会使用

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

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

于 2009-03-01T22:26:58.793 回答
6

在没有额外工具的窗口中:

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

无需额外工具

于 2009-03-01T22:36:40.547 回答
6

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

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

findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
于 2015-07-08T15:06:13.207 回答
3

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

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

more +1与解决方案相比,这具有将保留制表符字符的优势。但是,在大文件上,这种方法比其他方法慢很多。此外 - 前导空格将被左修剪,这可能是也可能不是问题。

于 2014-09-07T15:57:25.010 回答