Я пытаюсь найти команду или создать скрипт на linux, позволяющий переключать конкретное выражение на нижний регистр во многих файлах в подкаталогах.
Мне нужно это, чтобы изменить регистр во всех операторах include в проекте C++ (проект Porting Visual studio для linux)
Поэтому во многих файлах у меня есть
#include <Path1/pAth2/naMeofTheHeader.h>
и я хотел бы изменить его на
#include <Path1/pAth2/nameoftheheader.h>
(Конечно, я не хочу, чтобы путь был перемещен в нижнем регистре)
Кто-нибудь есть идея выполнить это? Я пробовал команду somme sed (с\L), но все сработало.
благодаря
Вы можете попробовать команду ниже sed,
sed 's~\(#include .*\/\)\([^\/.]*\)~\1\L\2~g' file
Пример:
$ echo '#include <Path1/pAth2/naMeofTheHeader.h>' | sed 's~\(#include .*\/\)\([^\/.]*\)~\1\L\2~g'
#include <Path1/pAth2/nameoftheheader.h>
sed '/^#include <.*>/ s#[^/]\+$#\L&#'