我正在寻找一个工具来替换项目中的多行.例如:
#include "../DiscreteIO/Discrete.h" #include "../PCI/pci.h" #include "../Arinc429/ARINC429.h"
同
#include "../PCI/pci.h" #include "../DiscreteIO/DiscreteHW.h" #include "../DiscreteIO/Discrete.h"
我尝试了两种适用于此类搜索和替换的工具.Wildedit和实际搜索和替换两者似乎都是出色的工具,但它们是共享软件.有人知道类似的工具吗?有什么免费或是时候分钱?
澄清:
在这种情况下通过一个项目意味着一千多个c文件.文本编辑器一次只能执行一个文件(Textpad,Programmers notepad)或所有打开的文件(nodepad ++).我没有尝试任何其他编辑,但我认为他们会有类似的问题.如果我错了,请纠正我.
像sed和awk这样的工具是一种解决方案,但存在问题,因为我不经常使用它们并且需要花一些时间来获取工作,因为我不是这些工具的专家.
答案是:全部......
Ultra编辑可以工作,但我已经有一个编辑器,如果我只是将它用作搜索和替换工具,价格是陡峭的.
Sed,AWK和基于正则表达式的工具可以工作,但在某些情况下可能会很痛苦.
Wild Edit可以工作,而且价格不贵.
我最终的决定是运用我的正则表达技巧.
JetBrains系列IDE:IntelliJ,RubyMine,PHPStorm等将进行多行搜索和替换.
选择有问题的文本并按ctrl-shift-F
- 这将打开替换对话框,将所选文本作为查找表达式(使用带换行符的正则表达式\n
)
sed会做你想做的.
请参阅这里的FAQ条目http://sed.sourceforge.net/sedfaq4.html#s4.23.3
如果你需要匹配一个静态文本块(可能在整个文件中出现任意次数),预先知道块的内容,那么这个脚本很容易使用
Sed适用于Windows.见http://gnuwin32.sourceforge.net/packages/sed.htm