Board logo

标题: [文本处理] 【已解决】多个同样后缀格式的文本文件批量替换内容关键词 [打印本页]

作者: jave000    时间: 3 天前 14:40     标题: 【已解决】多个同样后缀格式的文本文件批量替换内容关键词

本帖最后由 jave000 于 2024-12-25 15:09 编辑

现有多个文本文件,有着同样的后缀格式,比如txt,用记事本打开是正常的文本内容。
现在需要批量把每个文本内容中第一行包含的config改为gen
请问批处理能实现吗?
谢谢
作者: hfxiang    时间: 3 天前 14:49

回复 1# jave000

如果不介意使用第3方工具,则sed( http://bcn.bathome.net/tool/4.9/sed.exe )的实现方式如下:
  1. sed -i "1s/config/gen/" *.txt
复制代码

作者: jave000    时间: 3 天前 15:00

回复 2# hfxiang


    感谢,已解决,就是因为已经有引号了,如果替换内容也需要引号,那么哪个用单引号?
作者: hfxiang    时间: 3 天前 15:06

回复 3# jave000
请提供实例以便测试
作者: jave000    时间: 3 天前 15:09

回复 4# hfxiang


  就是比如带空格的文本
  1. sed -i "1s/"something config"/"anything gen"/" *.txt
复制代码

作者: hfxiang    时间: 3 天前 15:12

回复 5# jave000
  1. sed -i "1s/something config/anything gen/" *.txt
复制代码

作者: jave000    时间: 3 天前 15:15

回复 6# hfxiang


    谢了,我学习一下sed资料
作者: aloha20200628    时间: 3 天前 15:54

本帖最后由 aloha20200628 于 2024-12-25 16:10 编辑

回复 1# jave000

给一个批处版本》将当前目录下的每个 *.txt 文件中的首行(假定首行不能是空行)作关键词替换并覆写源文件...
  1. @echo off &setlocal enabledelayedexpansion
  2. for /f "delims=" %%F in ('dir /b/a-d *.txt') do (
  3.   set/p "a="<"%%F" &set "a=!a:config=gen!"
  4.   more +1 "%%F">"_.2" &echo,!a!>"_.1" &copy /y _.1+_.2 "%%F")>nul
  5. del /q _.1 _.2 &pause&exit/b
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2