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

[文本处理] 两个文本,批处理如何根据正则两次搜索内容后替换主文本?

[复制链接]
发表于 2023-2-28 16:41:38 | 显示全部楼层 |阅读模式
主文本.txt
  1. 《海阔天空》
  2. 作词 : 黄家驹
  3. 作曲 : 黄家驹
  4. 编曲 : Beyond/梁邦彦

  5. 今天我,寒夜里看雪飘过,怀着冷却了的心窝漂远方;
  6. 风雨里追赶,雾里分不清影踪,天空海阔你与我,可会变 (谁没在变);

  7. 多少次,迎着冷眼与嘲笑,从没有放弃过心中的理想;
  8. 一刹那恍惚,若有所失的感觉,不知不觉已变淡,心里爱 (谁明白我);

  9. 原谅我这一生不羁放纵爱**,也会怕有一天会跌倒;
  10. 背弃了理想,谁人都可以,哪会怕有一天只你共我;

  11. 今天我,寒夜里看雪飘过,怀着冷却了的心窝漂远方;
  12. 风雨里追赶,雾里分不清影踪,天空海阔你与我,可会变 (谁没在变);

  13. 原谅我这一生不羁放纵爱**,也会怕有一天会跌倒;
  14. 背弃了理想,谁人都可以,哪会怕有一天只你共我;

  15. 仍然**自我,永远高唱我歌,走遍千里;

  16. 原谅我这一生不羁放纵爱**,也会怕有一天会跌倒;
  17. 背弃了理想,谁人都可以,哪会怕有一天只你共我;

  18. 原谅我这一生不羁放纵爱**,也会怕有一天会跌倒;
  19. 背弃了理想,谁人都可以,哪会怕有一天只你共我……
复制代码
副文本.txt
  1. 《海阔天空》
  2. 今天我,寒夜里看雪飘过,怀着冷却了的心窝漂远方;
  3. 风雨里追赶,雾里分不清影踪,天空海阔你与我,可会变 (谁没在变);
  4. 多少次,迎着冷眼与嘲笑,从没有放弃过心中的理想;
  5. 一刹那恍惚,若有所失的感觉,不知不觉已变淡,心里爱 (谁明白我);
  6. 原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒;
  7. 背弃了理想,谁人都可以,哪会怕有一天只你共我;
  8. 今天我,寒夜里看雪飘过,怀着冷却了的心窝漂远方;
  9. 风雨里追赶,雾里分不清影踪,天空海阔你与我,可会变 (谁没在变);
  10. 原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒;
  11. 背弃了理想,谁人都可以,哪会怕有一天只你共我;
  12. 仍然自由自我,永远高唱我歌,走遍千里;
  13. 原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒;
  14. 背弃了理想,谁人都可以,哪会怕有一天只你共我;
  15. 原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒;
  16. 背弃了理想,谁人都可以,哪会怕有一天只你共我。
复制代码
这个能搜索到主文本.txt*句子
  1. [一-龥]*\*+[一-龥]*[^一-龥][一-龥]{1,}
复制代码
搜索出来的带*号,需要把多个*替换成[一-龥]+再次正则搜索副文本.txt
把搜索内容替换掉主文本带*的句子
发表于 2023-2-28 17:28:29 | 显示全部楼层
请确保“副文本.txt”及“主文本.txt”都均已保存为ANSI编码格式,下载gawk( http://bcn.bathome.net/tool/4.1.3/gawk.exe ),执行:

  1. awk "NR==FNR{M[++n]=$0;next}/\*/{str=gensub(/^([^*]+)\*+([^*]*)$/,"\\1.*\\2","g",$0);for(i=0;i++<n;)if(M[i]~str)$0=M[i]}1" 副文本.txt 主文本.txt>结果.txt
复制代码

评分

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

查看全部评分

 楼主| 发表于 2023-2-28 19:20:58 | 显示全部楼层
谢谢,运行正常,就是不会用gawk,自己把*改英文[a-z]+就失败了
发表于 2023-3-1 11:53:10 | 显示全部楼层
回复 3# xp3000

例如"主文本.txt"修改为:

  1. 《海阔天空》
  2. 作词 : 黄家驹
  3. 作曲 : 黄家驹
  4. 编曲 : Beyond/梁邦彦

  5. 今天我,寒夜里看雪飘过,怀着冷却了的心窝漂远方;
  6. 风雨里追赶,雾里分不清影踪,天空海阔你与我,可会变 (谁没在变);

  7. 多少次,迎着冷眼与嘲笑,从没有放弃过心中的理想;
  8. 一刹那恍惚,若有所失的感觉,不知不觉已变淡,心里爱 (谁明白我);

  9. 原谅我这一生不羁放纵爱Ab,也会怕有一天会跌倒;
  10. 背弃了理想,谁人都可以,哪会怕有一天只你共我;

  11. 今天我,寒夜里看雪飘过,怀着冷却了的心窝漂远方;
  12. 风雨里追赶,雾里分不清影踪,天空海阔你与我,可会变 (谁没在变);

  13. 原谅我这一生不羁放纵爱Cd,也会怕有一天会跌倒;
  14. 背弃了理想,谁人都可以,哪会怕有一天只你共我;

  15. 仍然eF自我,永远高唱我歌,走遍千里;

  16. 原谅我这一生不羁放纵爱gH,也会怕有一天会跌倒;
  17. 背弃了理想,谁人都可以,哪会怕有一天只你共我;

  18. 原谅我这一生不羁放纵爱ij,也会怕有一天会跌倒;
  19. 背弃了理想,谁人都可以,哪会怕有一天只你共我……
复制代码
则脚本可做如下修改:

  1. awk "NR==FNR{M[++n]=$0;next}/[A-Za-z]/{str=gensub(/^([^A-Za-z]+)[A-Za-z]+([^A-Za-z]+)$/,"\\1.*\\2","g",$0);for(i=0;i++<n;)if(M[i]~str)$0=M[i]}1"  副文本.txt 主文本.txt>结果.txt
复制代码

评分

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

查看全部评分

 楼主| 发表于 2023-3-1 15:23:28 | 显示全部楼层
谢谢很好用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 02:28 , Processed in 0.019535 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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