我需要一个 cmd 脚本来删除我的文本文件中的第一行。场景如下:我每天从 FTP 获取一个 txt 文件,问题是它的顶部有空行,然后是文件的标题。由于我将该文件自动导入到访问表中,因此该空白行给我带来了问题。
所以,我需要一个删除空白行并保存文件的脚本。
我需要一个 cmd 脚本来删除我的文本文件中的第一行。场景如下:我每天从 FTP 获取一个 txt 文件,问题是它的顶部有空行,然后是文件的标题。由于我将该文件自动导入到访问表中,因此该空白行给我带来了问题。
所以,我需要一个删除空白行并保存文件的脚本。
窗口/命令提示符:
more +1 filename.ext > otherfilename.ext
这似乎工作正常,但是这似乎也将制表符转换为多个空格。我需要在导入 postgres 之前删除制表符分隔文件的第一行。由于更多...自动将制表符转换为空格,这失败了
您没有指定平台。以下是在任何 *NIX 环境(和 Windows+Cygwin)中执行此操作的方法:
sed -i~ 1d target-file
要删除第一行,我会使用
tail -n +2 source-file > target-file
如果您想在 Windows 上使用此功能,请下载 gnu utils 以获取 tail 命令。+2 表示“从第二行开始”。
在没有额外工具的窗口中:
findstr /V /R "^$" filename.whatever
无需额外工具
我注意到一些评论询问如何使用 Preet Sangha 的解决方案。由于我没有足够的代表来添加评论,我想在这里发布一个更完整的解决方案。
您可以使用 Preet Sangha 的解决方案,如下所示。此脚本将创建一个没有输入文件第一行的新文本文件。
findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
我今天需要做类似的事情,这就是我想出的:
FOR /F "tokens=* skip=1" %A IN ('type "input_file.ext"') DO @echo %A>>"output_file.ext"
more +1
与解决方案相比,这具有将保留制表符字符的优势。但是,在大文件上,这种方法比其他方法慢很多。此外 - 前导空格将被左修剪,这可能是也可能不是问题。