LINUX.ORG.RU

Понижение РЕГИСТРА в сорцах проекта.

 


0

1

sup Есть директория с проектом, написанном на c&fortran. Задача состоит в том, чтобы все фалы проекта (а их порядка 1500) переименовать в нижний регистр, а ну и, соответственно, необходимые участки в коде. Например, если есть файл с именем HeaderM.h, нужно понизить его в header.h и поменять все инклюды в проекте. Подскажите, существует ли подобный инструмент?


Ответ на: комментарий от vel

По поводу самого переименования: вроде существует rename

А вот по поводу нахождения и изменения вложений, нужен будет скорей всего какой-нибудь жуткий велосипед или IDE с поддержкой подобного рефакторинга.

Но ценность данного деяния от меня ускользает.

beastie ★★★★★
()

Вот накидал тут портянку. Сделай бэкап перед применением. Сперва надо перейти в директорию где лежат файлы.

find . -type f -print0 | xargs -0 rename -v 'y/A-Z/a-z/' | grep -Po '.*(?=renamed as)' | xargs -n1 basename | xargs -n1 grep -r | sed "s/\(.*\):\(.*\)/sed -i 's\/\2\/\\\\L\&\/' \1/" | bash -s

anonymous
()
Ответ на: комментарий от anonymous

Точнее вот так:

find . -type f -print0 | xargs -0 rename -v 'y/A-Z/a-z/' | grep -Po '.*(?=renamed as)' | xargs -n1 basename | xargs -n1 grep -Por | sed "s/\(.*\):\(.*\)/sed -i 's\/\2\/\\\\L\&\/' \1/" | bash -s

anonymous
()

Например, если есть файл с именем HeaderM.h, нужно понизить его в header.h и поменять все инклюды в проекте

а это точно нужно? вроде как имена хэдеров регистронезависимы

Harald ★★★★★
()
Ответ на: комментарий от Harald

В unix-like вроде зависимо. Включение файлов в исходник делает препроцессор, а он просто работает как

cat
по сути.

anonymous
()
Ответ на: комментарий от anonymous

Теперь должно работать с вложенными директориями:

find . -type f -print0 | xargs -0 rename -v 's/(.*)\/(.*)/$1\/\L$2/' | grep -Po '.*(?=renamed as)' | xargs -n1 basename | xargs -n1 grep -Por | sed "s/\(.*\):\(.*\)/sed -i 's\/\2\/\\\\L\&\/' \1/" | bash -s

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.