sed中的正则表达式替换C ++包括

时间:2011-06-10 11:18:55

标签: c++ include sed

我正在尝试使用sed来改变一切;

#include "X"

为:

#include <X>

但是我似乎找不到办法做到这一点! - 这就是我到目前为止所做的:

sed -i 's/#include ".*"/#include <.*>/g' filename

我想我需要一个变量来保存“。*”的内容,我只是不知道怎么做!

3 个答案:

答案 0 :(得分:4)

是的,你这样做。正则表达式使用()来保存匹配的内容,使用\ 1来检索它。如果您使用多个()集合,则第二个匹配位于\ 2,依此类推。

sed -e 's/#include "\(.*\)"/#include <\1>/g' < filename

会做你需要的。

答案 1 :(得分:2)

尝试:

sed 's/#include "\(.*\)"/#include <\1>/' x.cpp

答案 2 :(得分:2)

尝试:

sed -i 's/#include "\(.*\)"/#include <\1>/g' filename