[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

求助一下一个文本处理的问题
文本如附件,内容大致如下:
  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】
复制代码

本帖最后由 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
复制代码

TOP

  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

评分人数

TOP

返回列表