多行搜索和替换工具

Ger*_*ard 20 search

我正在寻找一个工具来替换项目中的多行.例如:

#include "../DiscreteIO/Discrete.h"
#include "../PCI/pci.h"
#include "../Arinc429/ARINC429.h"
Run Code Online (Sandbox Code Playgroud)

#include "../PCI/pci.h"
#include "../DiscreteIO/DiscreteHW.h"
#include "../DiscreteIO/Discrete.h"
Run Code Online (Sandbox Code Playgroud)

我尝试了两种适用于此类搜索和替换的工具.Wildedit实际搜索和替换两者似乎都是出色的工具,但它们是共享软件.有人知道类似的工具吗?有什么免费或是时候分钱?

澄清:

在这种情况下通过一个项目意味着一千多个c文件.文本编辑器一次只能执行一个文件(Textpad,Programmers notepad)或所有打开的文件(nodepad ++).我没有尝试任何其他编辑,但我认为他们会有类似的问题.如果我错了,请纠正我.

像sed和awk这样的工具是一种解决方案,但存在问题,因为我不经常使用它们并且需要花一些时间来获取工作,因为我不是这些工具的专家.

答案是:全部......

Ultra编辑可以工作,但我已经有一个编辑器,如果我只是将它用作搜索和替换工具,价格是陡峭的.

Sed,AWK和基于正则表达式的工具可以工作,但在某些情况下可能会很痛苦.

Wild Edit可以工作,而且价格不贵.

我最终的决定是运用我的正则表达技巧.

Ric*_*ich 12

JetBrains系列IDE:IntelliJ,RubyMine,PHPStorm等将进行多行搜索和替换.

选择有问题的文本并按ctrl-shift-F- 这将打开替换对话框,将所选文本作为查找表达式(使用带换行符的正则表达式\n)


The*_*aul 9

sed会做你想做的.

请参阅这里的FAQ条目http://sed.sourceforge.net/sedfaq4.html#s4.23.3

如果你需要匹配一个静态文本块(可能在整个文件中出现任意次数),预先知道块的内容,那么这个脚本很容易使用

Sed适用于Windows.见http://gnuwin32.sourceforge.net/packages/sed.htm

  • 不知道我做错了什么,但是当我运行`sed -nf blockrep.sed findrep.txt`命令生成`custom.sed`文件时,我收到错误`sed:file blockrep.sed第18行:unterminated' s'命令'.看一下该行的正则表达式(`s,[/\[.*],\\&,g`),这对我来说是正确的. (2认同)