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

[文本处理] 求助批处理获取文本B内容,替换文本A中的内容

[复制链接]
发表于 2018-12-19 10:59:07 | 显示全部楼层 |阅读模式
文本A内容如下:
654485244----feasd12----童童
654843485----as35e1f----乐乐
654115846----65awe5----亲亲
135857486----faseadf----宝宝
185647566----fwsa65----贝贝


文本B内容如下:
654485244----sldkwhjd
135857486----alxckedf
654843485----alckejffg

意思就是文本B的内容是文本A的内容修改过第二项的。
两个文本都很长,要怎么样才能把文本B的内容导入文本A,只修改第二项。求指教,叩谢!
发表于 2018-12-19 11:24:24 | 显示全部楼层

[更新]参考三楼建议

本帖最后由 yhcfsr 于 2018-12-19 15:00 编辑
  1. @echo off
  2. set "ATXT=a.txt"
  3. set "BTXT=b.txt"
  4. (for /f "tokens=1,2* delims=-" %%a in ('type "%ATXT%"') do (
  5.     set "flag="
  6.     for /f "tokens=2 delims=-" %%i in ('findstr /c:"%%a" "%BTXT%"') do (set "flag=1"&echo;%%a----%%i----%%c)
  7.     if not defined flag echo;%%a----%%b----%%c
  8. ))>结果.txt
复制代码
发表于 2018-12-19 12:52:37 | 显示全部楼层
回复 2# yhcfsr


    猜测楼主的意思,654115846在b文件里面没有出现,a文件第二列不变但是要保留。
发表于 2018-12-19 13:22:35 | 显示全部楼层
  1. gawk 'BEGIN{OFS=FS="----"}FILENAME=="B.txt"{a[$1]=$2}FILENAME=="A.txt"{if(a[$1]) print $1,a[$1],$3;else print $0}' B.txt A.txt >result.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 21:36 , Processed in 0.011650 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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