Все мы знаем, что оставлять в конце php файла закрывающий ?> плохо. Подскажите элегантное решение желательно в одну строку (grep, tail, etc.) которой можно было бы найти такие файлы. В том числе и те, у которых есть пустые строки после ?> Программу я сам могу написать, хочется получить совет от гуру командной строки.
таки ты же хочешь с консоли запустить поиск .. я предложил поиск - а теперь расказываю какой -r - рекурсивка -n - номер строки "?>" - конец строки -С3 печатать ЧИСЛО строк контекста - покажет немного больше чем то что ты хочешь /path - путь к страничкам и таки что тут не правильного ? --- Добавлено --- покажет чтото типа такого ( чтобы вам не думалось сразу говорю - это тестовый проект разбора fias - адреса -в инете все есть) Код (Text): [root@host-15 var]# grep -r -n "?>" -C3 /var/www/html /var/www/html/fias/stockquote.wsdl:1:<?xml version ='1.0' encoding ='UTF-8' ?> /var/www/html/fias/stockquote.wsdl-2-<definitions name='StockQuote' /var/www/html/fias/stockquote.wsdl-3- targetNamespace='http://example.org/StockQuote' /var/www/html/fias/stockquote.wsdl-4- xmlns:tns='http://172.16.1.239/fias/server.php' -- /var/www/html/fias/nbproject/private/private.xml:1:<?xml version="1.0" encoding="UTF-8"?> /var/www/html/fias/nbproject/private/private.xml-2-<project-private xmlns="http://www.netbeans.org/ns/project-private/1"> /var/www/html/fias/nbproject/private/private.xml-3- <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="2"/> /var/www/html/fias/nbproject/private/private.xml-4- <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> -- /var/www/html/fias/nbproject/project.xml:1:<?xml version="1.0" encoding="UTF-8"?> /var/www/html/fias/nbproject/project.xml-2-<project xmlns="http://www.netbeans.org/ns/project/1"> /var/www/html/fias/nbproject/project.xml-3- <type>org.netbeans.modules.php.project</type> /var/www/html/fias/nbproject/project.xml-4- <configuration> -- /var/www/html/fias/index.php-167- /var/www/html/fias/index.php-168- /var/www/html/fias/index.php-169- /var/www/html/fias/index.php:170:?>
Арту, хз как в нетбинсах, а во штормах можно сделать поиск по всему проекту и указать регулярку. В том числе с заменой. Найдет тебе все закрывашки в конце файлов и заменит их хоть на звезды, хоть на небо, хоть на аллаха.
Поздно, я вперёд (на псевдокоде) : Код (PHP): <?php $file = file_get_content(STDIN); $file = rtrim($file, "\n\r\t ?>") echo $file . "\n";
Как тут минусуют? @Slavka мне не нужен ни номер строки, ни показать чуть больше. Мне нужно найти файлы, заканчивающиеся на ?> То, что ты показал, возможно и правильно, только никак не связано с моей задачей. @Fell-x27 я указал контекст: командная строка. @topas еще раз: нужна командная строка. и я не правлю файлы, а ищу их. нюанс! В общем, все говорят о своём, а не о поставленной цели, как обычно. Я сам так поступаю. Всем спасибо! Emilien дал пример, вроде бы рабочий, спасибо, попробую! --- Добавлено --- Кажется я нашел правильную поисковую строку для Гугл. https://www.google.ru/search?q=find+php+files+with+tailing+tag
задача решается легко и красво - grep прекрасно понимает регулярки - вот ответ как ты просил grep -r -E "\?>( )*?$" /path Просто сначала я думал что задача немного другая ( ты в командной строке будет просматривать глазками) поэтому дал и номера строчек .. и немного расширил вывод на экран ну раз нашел так нашел.
Нет Slavka, не годится. Забей уже. --- Добавлено --- Emilien уже дал годный ответ. Оставлю здесь вариант с дополнительными масками на расширение файла и указанием куда не заходить, чисто для ускорения процесса: Код (Text): grep -rlzP --include "*.phtml" --include "*.php" --exclude-dir=.git "\?>\s*\z" ./