首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Notepad++搜索和替换多个文本行

Notepad++搜索和替换多个文本行
EN

Stack Overflow用户
提问于 2015-12-26 23:09:03
回答 1查看 138关注 0票数 0

我有很多不同的规则

代码语言:javascript
复制
edit 1698

set src-address "172.29.44.51/32"

set dst-address "172.29.44.67/32" 

set service "tcp-1022"

set service "tcp-1023"

set service "tcp-1090"

set service "tcp-1098-1102"

set service "tcp-115"

set service "tcp-123"

set service "tcp-13000"

set service "tcp-13001"

set service "tcp-14000"

set service "tcp-14001"

set service "tcp-15000"

set service "tcp-16000"

set service "tcp-1812"

set service "tcp-22"

set service "tcp-32770-32900"

set service "tcp-3307"

set service "tcp-3528"

set service "tcp-3600"

set service "tcp-4400-4500"

set service "tcp-4712-4715"

set service "tcp-5000"

set service "tcp-5000-5630"

set service "tcp-50023-50030"

set service "tcp-5632-7000"

set service "tcp-636"

set service "tcp-7500"

set service "tcp-7600"

set service "tcp-7650"

set service "tcp-7651"

set service "tcp-7900"

set service "tcp-8009"

set service "tcp-8093"

set service "tcp-8443"

set service "tcp-9000"

set service "tcp-9001"

set service "udp-1023"

set service "udp-1102"

set service "udp-123"

set service "udp-13001"

set service "udp-14000"

set service "udp-14000-14001"

set service "udp-161"

set service "udp-162"

set service "udp-177"

set service "udp-22"

set service "udp-389"

set service "udp-45600-45800"

set service "udp-5900"

set service "udp-7500"

set service "udp-8443"

set service "udp-9001"

set service "udp-920-940"

exit 

我希望它将所有设置的服务线路收集到一行中,如下面的示例所示

代码语言:javascript
复制
set service "PING" "tcp-1022" "tcp-1023" "tcp-1090" "tcp-1098-1102" "tcp-115" "tcp-123" "tcp-13000" "tcp-13001" "tcp-14000" "tcp-14001" "tcp-15000" "tcp-16000" "tcp-1812" "tcp-22" "tcp-32770-32900" "tcp-3307" "tcp-3528" "tcp-3600" "tcp-4400-4500" "tcp-4712-4715" "tcp-5000" "tcp-5000-5630" "tcp-50023-50030" "tcp-5632-7000" "tcp-636" "tcp-7500" "tcp-7600" "tcp-7650" "tcp-7651" "tcp-7900" "tcp-8009" "tcp-8093" "tcp-8443" "tcp-9000" "tcp-9001" "udp-1023" "udp-1102" "udp-123" "udp-13001" "udp-14000" "udp-14000-14001" "udp-161" "udp-162" "udp-177" "udp-22" "udp-389" "udp-45600-45800" "udp-5900" "udp-7500" "udp-8443" "udp-9001" "udp-920-940"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-27 12:56:28

这里是notepad++的唯一解决方案。它使用宏,因为您说您有许多不同的规则文件。

  1. 宏->开始记录,现在一切都记录到宏中。
    1. 首先,替换以标记set服务块的开始:-按Ctrl-Pos1,进入当前文件的开头。 -搜索->替换: 查找^(?!set service).+?\r\nset service 替换为\1first set service\3检查左下角的正则表达式 -按下替换所有

代码语言:javascript
复制
1. Second Replace to join a set service block with the starting line:  
    - Press Ctrl-Pos1, to go to the beginnig of current file.
    - Search -> Replace...:

查找\r\nset service

替换为: (无)检查左下角的Extended

-按下替换所有

代码语言:javascript
复制
1. Third Replace to remove the tag in the starting line:  
    - Press Ctrl-Pos1, to go to the beginnig of current file.
    - Search -> Replace...:

查找^first set service

替换为set service检查左下角的正则表达式

-按下替换所有

  1. 宏->停止记录
  2. 宏->保存当前记录的宏,给它一个名称,并为它创建一个键盘快捷方式。
  3. 测试宏。如果它有效,请继续,否则删除它并重新开始录制。

现在,您可以打开所有规则文件并将宏应用于每个文件。如果需要删除宏,则在“宏->修改快捷方式”/“删除宏”下找到它。

编辑:这里是一个屏幕截图,用来调试您在注释中所写的零匹配的问题:

,请注意有标记的部分:

  • 查找表达式中的\r\n
  • Dos\Windows作为状态栏中的行尾类型
  • 正则表达式检查在左下角。
  • 与文件区域中的搜索匹配的区域。

行数必须修改。

建议搜索结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34476116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档