Board logo

标题: [文本处理] 求助批处理获取文本B内容,替换文本A中的内容 [打印本页]

作者: clock874    时间: 2018-12-19 10:59     标题: 求助批处理获取文本B内容,替换文本A中的内容

文本A内容如下:
654485244----feasd12----童童
654843485----as35e1f----乐乐
654115846----65awe5----亲亲
135857486----faseadf----宝宝
185647566----fwsa65----贝贝


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

意思就是文本B的内容是文本A的内容修改过第二项的。
两个文本都很长,要怎么样才能把文本B的内容导入文本A,只修改第二项。求指教,叩谢!
作者: yhcfsr    时间: 2018-12-19 11: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
复制代码

作者: Batcher    时间: 2018-12-19 12:52

回复 2# yhcfsr


    猜测楼主的意思,654115846在b文件里面没有出现,a文件第二列不变但是要保留。
作者: cfwyy77_bat    时间: 2018-12-19 13:22

  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
复制代码





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