Замените #include <> на #include «»

0

Я новичок в grep, а во время процесса рефакторинга над C и C++ файлами, с которыми связана проблема замены системы, включает #include <> с локальным включением #include "".

Есть ли способ сделать это с помощью grep с любым инструментом замены, скажем, для любого файла C или C++ в данном каталоге и подкаталогах?

  • 0
    Нет, grep - это просто инструмент поиска по шаблону . Он не может заменить контент.
  • 3
    Должно быть возможно с sed вместо этого.
Показать ещё 3 комментария
Теги:
grep
include

2 ответа

1

Вот решение, использующее sed:

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

Вы можете сделать это в perl:

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

Или, может быть, безопаснее:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню