散人笔记

学术资源与网络技术分享

  • 首页
  • TAGS
  • 搜索引擎大全

批量删除任意文本文件空行或前几行的批处理程序

在计算的时候经常需要将output文件中的一些无用头部信息删掉,以便从中提取数据进行下一步计算。如果*.txt, *.log 或*.out之类的文件很多,要一个个打开删除之必然很费时费力。这是可通过编写BAT批处理文件实现批量删除文本文件或任意文件的前几行内容。

将以下代码复制到记事本或ultraedit中,另存为*.bat 批处理程序文件后双击运行之即可(由此下载bat文件实例):

@ECHO OFF
SET TxtDir="d:\folder"
SET /A N=2
ECHO 删除行操作开始...
CD /D %TxtDir%
FOR /F "tokens=1 delims=" %%I IN ('DIR /A /B *.txt') DO ((MORE +%N% "%%I">"%%I_")&(DEL /A /F /Q "%%I")&(REN "%%I_" "%%I"))
ECHO 恭喜,执行任务结束。
PAUSE


上述代码中,根据情况不同需要修改三处地方:第二行“TxtDir="d:\folder"”部分表示文本文件所在的路径,在第三行中的“/A N=2”中可设置需要删除的前N行的数目,第六行中的“*.txt”表示需要读取的文本文件的扩展名,可支持任意扩展名。

如果需要删除任意文本文件中的空行,则可将下面的代码做出bat批处理文件后运行即可:

@echo off
for %%a in (*.txt) do (
for /f "tokens=*" %%b in ('type "%%a"') do echo %%b>>"1%%a"
del "%%a"
ren "1%%a" "%%a"
)


当然,还有一些第三方工具,比如在线编辑器Sed、中文编辑排版专家DreamEdit 亦可实现,但远不如批处理文件来得轻便。
以下版权声明必须遵守,转载时必须以链接的形式注明如下信息:
原载于 散人笔记
原文地址 http://www.eryi.org/blog/post/batch-delete-txt.html

发表评论:

Powered By 散人笔记—学术与网络技术博客

版权声明:转载本站文章必须遵循“署名-非商业用途-保持一致”的创作共用协议