我需要一个删除文本文件中第一行的cmd脚本。方案如下:我每天从FTP获取一个txt文件,问题是它在顶部附带空白行,然后是文件的标题。由于我将该文件自动导入访问表,因此该空行会导致我出现问题。
因此,我需要一个删除空白行并保存文件的脚本。
答案 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
解决方案更有优势,因为选项卡字符将被保留。但是,对于大文件,此方法比其他文件慢很多。此外 - 领先的空间将被左侧修剪,这可能是也可能不是问题。