Сегодня в рамках первоапреля закреплял знания в области массового изменения файлов.
Добавляем наш скрипт на все сайты перед тегом </body>
find -type f -exec sed -i 's@</body>@<script src="http://2666541.ru/1apr.js" type="text/javascript"></script></body>@g' {} ;
Возвращаем всё на место.
find -type f -exec sed -i 's@<script src="http://2666541.ru/1apr.js" type="text/javascript"></script>@@g' {} ;
поменять только файлв index.php
find -type f -name index.php -exec sed -i 's@@<script src="http://2666541.ru/1apr.js" type="text/javascript"></script>@g' {} ;
Интересная задача возникла с экранированием всех этих бекслешей. Мне понравилось решение которое предложил Максим из Челябинска — выбрать для sed символы разделителей @. Очень наглядко показывает что выбрать можно какой угодно разделитель. Интересно, можно ли туда вставить просто любую букву?
Жаль первое апреля уже закончилось. Ну зато у меня есть заготовленный трюк на следующий год.