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

[文本处理] [已解决]求教批处理如何查找比较两个文本文件内容并作内容的替换,十分感谢。

[复制链接]
发表于 2022-10-29 09:06:33 | 显示全部楼层 |阅读模式
小弟有两个文本文件1.txt与2.txt。
1.txt的内容大致如下:
12345.abc|12345|1f7y4mg5|123e4r5d
abcde.abc|78|8u65tg4e|09iu876y
5td43.abc|4533|56789uy5|ooi8uj67
.
.
2.txt的内容大致如下:
12345.abc?n=你好
67890.abc?n=欢迎
abcde.abc?n=谢谢您
5td43.abc?n=对
33eed.abc?n=非常感谢
.
.
1.txt文件每行头部截至.abc会在2.txt某行头部有完全一致的字符。现在希望用1.txt每行头部截至.abc去搜索比较2.txt,在2.txt中找到完全一致的某行头部后,用2.txt的含有这相同头部的这一整行替换掉1.txt的头部截至.abc这一位置的字符串。
达到如下效果:
12345.abc?n=你好|12345|1f7y4mg5|123e4r5d
abcde.abc?n=谢谢您|78|8u65tg4e|09iu876y
5td43.abc?n=对|4533|56789uy5|ooi8uj67
.
.
可以在1.txt中直接替换修改,最好生成一个新的文本文件。
不知道小弟说的是不是啰嗦,有不妥处请大大们海涵,谢谢大大们了。
发表于 2022-10-29 09:30:44 | 显示全部楼层
如果不介意第3方工具gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe ),如下脚本能解决需求:

  1. gawk -F".abc" "{if(NR==FNR){a[$1]=$2}else{if(a[$1]){print $1 FS a[$1] $2}}}" 2.txt 1.txt>3.txt
  2. move /y 3.txt 1.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
wocool + 1 乐于助人

查看全部评分

发表于 2022-10-29 09:32:16 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2022-10-29 09:35 编辑

回复 1# wocool
如果行数不是太多,试试下面代码,bat文件另存为ANSI编码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims=?" %%i in (2.txt) do set "_%%i=%%i?%%j"
  4. (for /f "tokens=1* delims=|" %%i in (1.txt) do (
  5.     if defined _%%i (
  6.         echo,!_%%i!^|%%j
  7.     ) else (
  8.         echo,%%i^|%%j
  9.     )
  10. ))>new.txt
  11. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
wocool + 1 感谢分享

查看全部评分

 楼主| 发表于 2022-10-29 10:19:24 | 显示全部楼层
回复 2# hfxiang
OK,俺去试试,十分感谢!
 楼主| 发表于 2022-10-29 10:20:17 | 显示全部楼层
回复 3# qixiaobin0715
好的,谢谢,我去试下,十分感谢!
 楼主| 发表于 2022-10-29 10:44:52 | 显示全部楼层
回复 2# hfxiang
刚刚下载软件并用您给的脚本运行了一下,结果生成的3.txt是空文件。再次请求帮忙看看。
 楼主| 发表于 2022-10-29 10:47:05 | 显示全部楼层
回复 3# qixiaobin0715
可能是两个文件行数比较多,1.txt大概4,5千行,2.txt10多万行,运行后没有反应。还请您看看,麻烦了。
发表于 2022-10-29 11:02:35 | 显示全部楼层
回复 6# wocool


   
所有文件应确保其为ANSI编码格式,俺反复测试,一切正常
 楼主| 发表于 2022-10-29 11:18:11 | 显示全部楼层
回复 8# hfxiang
原谅小白的无知吧,保存编码后成功了,十分感谢大大仗义相助。哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 13:31 , Processed in 0.029457 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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