我需要一个cmd脚本来删除文本文件中的第一行。场景如下:我每天从FTP上取回一个txt文件,问题是它在顶部有一个空白行然后是文件头。由于我自动导入该文件到一个访问表中,那个空白行会给我带来问题。
因此,我需要一个脚本来删除空白行并保存文件。
因此,我需要一个脚本来删除空白行并保存文件。
Windows/命令提示符:
more +1 filename.ext > otherfilename.ext
这看起来运行良好,但是它似乎也将制表符转换为多个空格.. 我需要在导入到postgres之前删除制表符分隔的文件的第一行。由于自动将制表符转换为空格而失败。
您没有指定平台。以下是如何在任何*NIX环境(以及Windows+Cygwin)中执行此操作:
sed -i~ 1d target-file
<p>
标签。tail -n +2 source-file > target-file
findstr /V /R "^$" filename.whatever
findstr /V /R "^$" filename.whatever>clean_filename.whatever
同时不要使用同一个文件作为输入和输出!这会将文件大小变为0b。 - JDuarteDJfindstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
FOR /F %%a in ('dir /B /O:S *.sql') do (findstr /V /R "$" %%a > clean_%%a)
。 - JDuarteDJ今天我需要做类似的事情,以下是我的解决方案:
FOR /F "tokens=* skip=1" %A IN ('type "input_file.ext"') DO @echo %A>>"output_file.ext"
与 more +1
解决方案相比,这种方法的优点在于制表符将被保留。然而,在大文件上,该方法比其他方法慢得多。另外-前导空格将被左对齐修剪,这可能或可能不是一个问题。
(for ...... do @echo/%A)>"output.ext"
(只需一个重定向)来加快大文件的处理速度。(需要注意的是,这会删除每个空行) - Stephan