Суть проблемы в чем.Есть код,условно яндекс метрика.В коде используется много спец символов ( пайпы, ковычки и т.д.),необходимо из шела этот код вставить в index. В индексе есть метка,куда это вставить (некое ключевое слово которое можно заменить кодом.Код лежит условно в файле.Пробовал SED'ом,но из-за присутствия обильного числа спец символов,это очень проблематично.
Виталий: Это сарказм ? Мне для вставки текста в файл ставить php на продакшн сервер ? Может тогда все же лучше использовать имеющиеся средства ? Ведь установка php для этого - это не изобретение велосипеда,это костыль для костыля с квадратным колесом.
Ну да apt-get install для авк нормально, для пхп конец света, это не сарказм, это локальный шок.... Есть веб технологии , но вы решили сделать это по своему. Представляю реакцию специалиста, который однажды прийдет на смену вам....
Виталий: apt-get install на продакшн машине достаточно регламентированное занятие.awk практически всегда есть на *nix машинах "в стоке". Вставка кода в текстовый файл это не веб технологии.В общем я понял,иногда лучше жевать...
Ну если мест для вставки только одно, то проще разбить index.html на 2 файла, до ключевого слова и после.
После чего вывести эти файлы в результирующий в перемешку с нужным кодом
Спасибо,наверно все же это лучшее решение.Решил так.
grep -A 99999 META index.html | grep -v META > index.after (META - ключевое слово.Выводим все после ключевого слова кроме самого ключевого слова.)
grep -B 99999 META index.html | grep -v META > index.before (выводим все до ключевого слова кроме самого ключевого слова.)
Далее все запихиваем обратно в индекс в нужном порядке.
cat index.before > index.html
cat metrica >> index.html (запихиваем нужный код из файла)
cat index.after >> index.html (запихиваем все что было после метки)