Я пытаюсь найти и удалить все закрывающие теги PHP ?>
из конца файлов PHP на веб-сайте.
Я использовал:
find . -type f -exec sh -c 'tail -n 1 "$1" | grep -q "?>" && printf "%s\n" "$1"' -- {} \;
И это дает мне список всех файлов, которые заканчиваются тегом PHP, который ожидается, но этот список также содержит более 500 файлов, поэтому ручная обработка займет много времени.
Я ищу относительно простой способ сделать это, если это возможно.
Я пытался использовать sed
примерно так:
find . -type f -exec sh -c 'tail -n 1 "$1" | grep -q "?>" && printf "%s\n" "$1"' -- {} \; | sed -i '$ d' ./*
Но это имеет две проблемы; он не попадает в каталоги и удаляет последнюю строку из всех файлов, а не только тех, которые имеют закрывающий тег PHP.
Я ожидаю, что он найдет все файлы с ?>
в самой последней строке (я могу заставить это работать), а затем удалите последнюю строку с тегом.
Мне кажется, я совсем рядом, просто что-то упустил.