[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]如何根据一个文本列出的字符串替换关系式对另一个文本相应的字符串进行替换

本帖最后由 沸羊羊 于 2016-8-31 08:14 编辑

各位,我现在遇到个问题,想请教您一下:
我有两个txt文件,分别为a.txt,b.txt,a.txt里边内容格式为
111111,1
111111,2
111,1
而b.txt里面格式如:
aaa,s,aa,111111,ads,asd
aa,a,ad,111,sd,dd
现在我就是想读取a.txt的每一行数据,比如第一行,在b.txt中对应查找有没有111111,有的话,就将111111替换为1,需要注意的是,在b.txt中只有一行111111,但是a.txt中有两行111111,所以需要在b.txt中添加一行数据,并将111111替换为2,请问这个bat怎么写?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 40# 沸羊羊


http://bbs.bathome.net/thread-3473-1-1.html
如果你看不到这个帖子里面的所有图片,请检查一下是否已经登录了,www和bbs两个域名需要分别登录的。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 39# Batcher


    非常感谢!已申请QQ群,但是微信公众号显示不了?

TOP

回复 37# 沸羊羊


试试这两个教程
http://bbs.bathome.net/thread-14608-1-1.html
http://bbs.bathome.net/thread-31727-1-1.html

微信群会不定期进行在线分享,也会发布到微信公众号,欢迎多多关注
http://bbs.bathome.net/thread-3473-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 34# 沸羊羊


这里有 sed 教程,Linux和Windows绝大部分内容是通用的。
http://bbs.bathome.net/thread-13203-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 33# GNU


    您好,请问您有没有详细一点的,批处理教程,我想深入学习批处理,谢谢!

TOP

回复 35# happy886rr


    您好,感谢您的详解,谢谢

TOP

回复 34# 沸羊羊
  1. for /f "tokens=1-3 delims=:," %%a in ('findstr /n .* a.txt') do (sed -i "%%as/,%%b,/,%%c,/" b.txt)
复制代码
这个代码没问题,我是32位win7系统,我下载你提供的a、b.txt测试了5遍,没有任何问题。得到的b.txt与你要求的test.txt完全一致。

其中'findstr /n .* a.txt'就是给a.txt编上行号,
"tokens=1-3 delims=:,"是用:提取行号和用,号提取a.txt中的数据
sed -i "%%as/,%%b,/,%%c,/" b.txt中的%%as是替换一一对应行的内容,将%%b(也就是你所说的1111111)替换成%%c(也就是你所说的1)
for /f就是文本循环,从a.txt的第一行一直循环到最后一行。

可能是你控制台设置里“当前代码页编码不对”是否为gbk936编码。

TOP

回复 25# happy886rr


    您好,我也没找到sed的教程,能不能帮我解释下,这段脚本的意义?

TOP

回复 29# 沸羊羊


C:\Test>sed --version
sed (GNU sed) 4.2.2

看看你下载的哪个版本,老版本的 sed 可能不支持 -i

TOP

回复 31# happy886rr


    win7 ,我直接将你的脚本复制到一个新的bat中,然后执行

TOP

回复 29# 沸羊羊
你用的啥系统啊。还有要单独一个批处理,不要跟别的代码混用在一起。

TOP

回复 28# GNU


    谢谢!,其实我还是挺愿意,使用bat,而不是借助第三方来解决的,但是如果第三方不需要安装,那也是可以尝试下的

TOP

回复 27# happy886rr


    您好,我把您的脚本,放到bat中,然后下载了sed.exe,并且,我将a.txt、b.txt、sed.exe和bat 脚本都放在一个文件夹下,执行bat,提示我参数使用不对

TOP

回复 26# 沸羊羊


2. 支持
3. 不需要安装。可以放到bat同一个目录,或者放到C:\Windows\System32文件夹,然后就能直接使用了。

TOP

返回列表