替换#include<> #include“”

时间:2014-09-18 15:41:45

标签: c++ c grep include

我是grep的新手,在重构C和C ++文件的过程中,我遇到了更换系统的问题,包括#include <>本地包含#include ""

有没有办法使用grep和任何替换工具,比如给定目录和子目录上的任何C或C ++文件?

2 个答案:

答案 0 :(得分:1)

以下是使用sed的解决方案:

cat file.cpp | sed -re 's/#include\s*<([^>]+)>/#include "\1"/g' > fixed_file.cpp

答案 1 :(得分:1)

您可以在perl中执行此操作:

perl -p -i.bak -e "s/<(.*)>/\"\1\"/g" abc.h

或者更安全:

perl -p -i.bak -e "s/#include <(.*)>/#include \"\1\"/g" abc.h