加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 批量删除文本文件中的一行?

发布时间:2020-12-14 01:52:06 所属栏目:Windows 来源:网络整理
导读:我正在寻找一个DOS批处理文件的简单示例,该文件将删除数千个txt文件的第一行,并使用原始文件名保存文件.在另一个程序执行批处理之后,我必须在外部处理之后在每个文件的开头添加删除的行(由“X,Y,Z”组成的文本字符串). 解决方法 您可以使用更多1来跳过文件的
我正在寻找一个DOS批处理文件的简单示例,该文件将删除数千个txt文件的第一行,并使用原始文件名保存文件.在另一个程序执行批处理之后,我必须在外部处理之后在每个文件的开头添加删除的行(由“X,Y,Z”组成的文本字符串).

解决方法

您可以使用更多1来跳过文件的第一行.然后你可以把它管道到一个临时的(你不能编辑文本文件):

for %x in (*.txt) do (more +1 "%x">tmp & move /y tmp "%x")

之后,您可以使用类似的技术重新添加第一行:

for %x in (*.txt) do ((echo X,Z& type "%x")>tmp & move /y tmp "%x")

如果您在批处理文件中使用它们,请记住将%符号加倍:

@echo off
for %%x in (*.txt) do (
    more +1 "%%x" >tmp
    move /y tmp "%%x"
)
rem Run your utility here
for %%x in (*.txt) do (
    echo X,Z>tmp
    type "%%x" >>tmp
    move /y tmp "%%x"
)

好吧,显然更多不适用于太大的文件,这让我感到惊讶.作为替代方案,如果您的文件不包含空行,它应该有效(尽管它看起来像我收集的CSV):

for %%x in (*.txt) do (
    for /f "skip=1 delims=" %%l in ("%%x") do (>>tmp echo.%%l)
    move /y tmp "%%x"
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读