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

[文本处理] 批处理如何删除文本中含有指定关键字并且连续出现多次的行内容

[复制链接]
发表于 2018-4-25 22:00:53 | 显示全部楼层 |阅读模式
求助一下一个文本处理的问题
文本如附件,内容大致如下:
  1. [20180425 213138][Create]
  2.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  3.         【C:\ProgramData\Penguin\Action\123\1230000001】

  4. [20180425 213138][Create]
  5.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  6.         【C:\ProgramData\Penguin\Action\123\1230000001\main.swf】

  7. [20180425 213138][Create]
  8.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  9.         【C:\ProgramData\Penguin\Action\10200001\1020000001\config.xml】

  10. [20180425 213138][Create]
  11.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  12.         【C:\ProgramData\Penguin\Action\10200001\1020000001\main\stand\nomal】

  13. [20180425 213138][Create]
  14.         【C:\test.exe】【5465】
  15.         【C:\ProgramData\Penguin\Action\10200002\1020000001\config.xml】

  16. [20180425 213138][Create]
  17.         【C:\test.exe】【5465】
  18.         【C:\ProgramData\Penguin\Action\10200003\1020000001\config.xml】

  19. [20180425 213138][Create]
  20.         【C:\test.exe】【5465】
  21.         【C:\ProgramData\Penguin\Action\10200004\1020000001\config.xml】

  22. [20180425 213138][Create]
  23.         【C:\test.exe】【5465】
  24.         【C:\ProgramData\Penguin\Action\10200005\1020000001\config.xml】

  25. [20180425 213138][Create]
  26.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  27.         【C:\ProgramData\Penguin\Action\102\1020000001\Config.xml】

  28. [20180425 213138][Create]
  29.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  30.         【C:\ProgramData\Penguin\Action\10300001\1030000001\config.xml】

  31. [20180425 213138][Create]
  32.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  33.         【C:\ProgramData\Penguin\Action\10300002\1030000001\config.xml】

  34. [20180425 213138][Create]
  35.         【C:\test.exe】【5465】
  36.         【C:\ProgramData\Penguin\Action\10200004\1020000001\config.xml】

  37. [20180425 213138][Create]
  38.         【C:\test.exe】【5465】
  39.         【C:\ProgramData\Penguin\Action\10200005\1020000001\config.xml】

  40. [20180425 213138][Create]
  41.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  42.         【C:\ProgramData\Penguin\Action\10300005\1030000001\config.xml】

  43. [20180425 213138][Create]
  44.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  45.         【C:\ProgramData\Penguin\Action\103\1030000001\Config.xml】
复制代码
要求删除所有包含C:\test.exe字符串的连续三行的内容。删除之后的内容应该如下:
  1. [20180425 213138][Create]
  2.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  3.         【C:\ProgramData\Penguin\Action\123\1230000001】

  4. [20180425 213138][Create]
  5.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  6.         【C:\ProgramData\Penguin\Action\123\1230000001\main.swf】

  7. [20180425 213138][Create]
  8.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  9.         【C:\ProgramData\Penguin\Action\10200001\1020000001\config.xml】

  10. [20180425 213138][Create]
  11.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  12.         【C:\ProgramData\Penguin\Action\10200001\1020000001\main\stand\nomal】

  13. [20180425 213138][Create]
  14.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  15.         【C:\ProgramData\Penguin\Action\102\1020000001\Config.xml】

  16. [20180425 213138][Create]
  17.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  18.         【C:\ProgramData\Penguin\Action\10300001\1030000001\config.xml】

  19. [20180425 213138][Create]
  20.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  21.         【C:\ProgramData\Penguin\Action\10300002\1030000001\config.xml】

  22. [20180425 213138][Create]
  23.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  24.         【C:\ProgramData\Penguin\Action\10300005\1030000001\config.xml】

  25. [20180425 213138][Create]
  26.         【C:\ProgramData\Pet\Penguin.exe】【5464】
  27.         【C:\ProgramData\Penguin\Action\103\1030000001\Config.xml】
复制代码
发表于 2018-4-26 17:40:19 | 显示全部楼层
本帖最后由 cfwyy77_bat 于 2018-4-27 12:12 编辑

这个应该用sed 做比较合适,不过本人sed也是学得刚入门
给一个不是很好的方案:
  1. sed "N;/\n.*test.exe/!P;D" 111.txt | sed "/test.exe/,+2d" >result.txt
复制代码
更新一下,可以一步做到:
  1. sed "N;/\n.*test.exe/,+2d;P;D" 111.txt >result.txt
复制代码
发表于 2018-4-26 21:05:00 | 显示全部楼层
  1. PowerShell "(type a.txt) -join "`r`n" -replace '[^\r\n]+\r\n.*C:\\test\.exe.*\r\n[^\r\n]+[\r\n]*'"
复制代码
  1. gawk -v RS="" "$0!~/C:\\test\.exe/" a.txt
复制代码
  1. grep -P -A1 -B1 "(?<!C:\\test)\.exe" a.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
tigerpower + 1 这么多方法!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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