我正在尝试使用sed来改变一切;
#include "X"
为:
#include <X>
但是我似乎找不到办法做到这一点! - 这就是我到目前为止所做的:
sed -i 's/#include ".*"/#include <.*>/g' filename
我想我需要一个变量来保存“。*”的内容,我只是不知道怎么做!
答案 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