【发布时间】:2014-07-30 22:54:09
【问题描述】:
我有一个 C++ 源文件列表,其结构如下:
// A lot of stuff
#include <current/parser/support/base.hpp>
// ...
#include <current/parser/iterators/begin.hpp>
// ...
我需要替换像
这样的行#include <current/parser/support/base.hpp>
与
#include <support_base.hpp>
即,省略 current/parser 并将分隔符 (/) 替换为 _。
这可能与 bash sed 或脚本语言有关吗?
编辑:对不起,忘了说我想替换类似的东西
#include <current/parser/*/*/*/*>
current/parser 之后任何事情都可以进行,而且深度不限。
【问题讨论】:
-
sed 可以做到,但您应该记住,使用这些工具 (sed/awk...) 来“修复”您的源代码可能会带来新问题。这是有风险的。
-
您想只替换那些包含
current/parser的行还是所有包含#include <anypath/last/file.hpp>的行? -
已编辑。以 #include
开头的任何内容 -
那么鉴于您当前编辑的示例,您希望
#include <*_*_*_*>作为输出?