找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 15707|回复: 5

[文本处理] [已解决]批处理如何根据文本内容批量替换?

[复制链接]
发表于 2010-5-1 13:42:12 | 显示全部楼层 |阅读模式
如题:例如文本a.txt内容
aaa,bbb
ccc,ddd
eee,fff
                                                                                                                                                                                                                                                                          
(意思是将其他文本中的字符串aaa替换为bbb ccc替换为ddd eee替换为fff  a.txt内容不固定,但格式都是“字符串”,“替换为的字符串”)

有b.txt内容
这是aaa, 这是ccc,这是eee


根据a.txt内容替换后b.txt内容为
这是bbb, 这是ddd,这是fff

[ 本帖最后由 daohe 于 2010-5-1 15:54 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢主动给标题标注[已解决]字样

查看全部评分

发表于 2010-5-1 15:13:22 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1-2 delims=," %%a in (a.txt) do (
  3.     sed -i "s/%%a/%%b/g" b.txt
  4. )
复制代码

评分

参与人数 1PB +3 收起 理由
Batcher + 3 乐于助人

查看全部评分

发表于 2010-5-1 15:27:35 | 显示全部楼层
  1. gawk "BEGIN{FS=","}NR==FNR{a[$1]=$2}NR>FNR{for(i in a)gsub(i,a[i],$0);print}" a.txt b.txt >c.txt
复制代码

评分

参与人数 1PB +3 收起 理由
Batcher + 3 乐于助人

查看全部评分

 楼主| 发表于 2010-5-1 15:54:41 | 显示全部楼层
测试结果:
  2楼正确,3楼没有效果!
发表于 2010-5-1 17:16:03 | 显示全部楼层

回复 4楼 的帖子

  1. gawk "BEGIN{FS=","}NR==FNR{a[$1]=$2}NR>FNR{for(i in a)gsub(i,a[i],$0);print}" a.txt b.txt >c.txt && move /y c.txt b.txt
复制代码
 楼主| 发表于 2010-5-1 20:33:11 | 显示全部楼层

回复 5楼 的帖子

2 3 5楼都是正确的,呵呵,很奇怪,我记得以前装过gawk.exe  ,后面测试总不成功,原来是这个没装
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 07:43 , Processed in 0.025800 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表