标题: [文本处理] [已解决]批处理如何根据文本内容批量替换? [打印本页]
作者: daohe 时间: 2010-5-1 13:42 标题: [已解决]批处理如何根据文本内容批量替换?
如题:例如文本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 编辑 ]
作者: CUer 时间: 2010-5-1 15:13
- @echo off
- for /f "tokens=1-2 delims=," %%a in (a.txt) do (
- sed -i "s/%%a/%%b/g" b.txt
- )
复制代码
作者: CUer 时间: 2010-5-1 15:27
- 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
复制代码
作者: daohe 时间: 2010-5-1 15:54
测试结果:
2楼正确,3楼没有效果!
作者: CUer 时间: 2010-5-1 17:16 标题: 回复 4楼 的帖子
- 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
复制代码
作者: daohe 时间: 2010-5-1 20:33 标题: 回复 5楼 的帖子
2 3 5楼都是正确的,呵呵,很奇怪,我记得以前装过gawk.exe ,后面测试总不成功,原来是这个没装
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |