Intereting Posts
Virtualmin – Как использовать зарезервированные имена электронной почты? (domains@example.com) сервер pypi, настройка для автоматической загрузки пакетов с клиента? Почему SNAT происходит в цепочке POSTROUTING и DNAT в цепочке PREROUTING? Был ли скомпрометирован мой Unix-сервер? Проблемы с Backtrack Создание символических ссылок на приложения в Mac OS X Различия в производительности при записи в / dev / sda и в / mnt / sda / tempfile Создайте один PDF-файл из нескольких (выбранных) изображений USB boot install Linux не распознает дисковое пространство Добавьте новую строку в имя файла с `mv` Вариант «пользователь» работает для монтирования, а не для umount Как отображать изображение на удаленной машине linux через ssh Проблема с установкой GRUB / LILO при двойной загрузке с windows 10 UEFI / GPT Не удалось вывести SystemD на Hardened / SELinux Как я могу скопировать структуру папок с одного сервера на другой, сохраняя того же владельца и разрешения?

Inline заменить комментарии в файлах рекурсивно

Я попытался использовать инструмент cloc с параметром --strip-comments , который корректно рекурсивно --strip-comments комментарии из всех файлов, с двумя проблемами:

  • он не может сделать это “на месте”
  • все полученные файлы копируются в каталог, из которого я запускаю команду, независимо от того, где они находились

Я выполнил команду

find . -name '*.php' | xargs cloc --strip-comments=BAK

Как я могу получить это, чтобы сделать редактирование файлов на месте или .BAK его чему-то в .BAK чтобы перезаписать оригинал?

Рассмотрение некоторых других вопросов привело меня к небольшому сценарию, который решает проблему:

 #!/bin/bash shopt -s globstar for f in **/*.php; do cloc --strip-comments=BAK --original-dir "${f%.*}.php" mv "${f%.*}.php.BAK" "${f%.*}.php" done 

Это, без сомнения, может быть оптимизировано дальше.