find -exec sed для поиска / замены повторно используемой строкой

Я спросил об этом разработчиков GraphViz и, похоже, ответ заключается в том, что сделать это невозможно:

Мы рассмотрели эту проблему много лет назад. Встроенный драйвер Postscript graphviz -Tps не имеет возможности загрузки пользовательских шрифтов. Как упоминалось здесь: http://tldp.org/HOWTO/Unicode-HOWTO-5.html
рендеринг шрифтов utf-8 в Postscript - это работа «сделай сам». Это, вероятно, займет недели или месяцы работы, но если вы захотите попробовать внести эту модификацию в graphviz, возможно, можно будет использовать код от одного из других инструменты, упомянутые на этом веб-сайте. (Убедитесь, что это код, отличный от GPL, иначе он не может быть распространен!)

Другой вариант - изменить драйвер cairopango для отображения текста поверх фигуры пользователя. после загрузки. (Разве мы еще не поддерживаем это? Это кажется очевидным.) Затем либо найдите способ визуализировать внешние фигуры графического изображения PS после их загрузки и скопируйте визуализированные изображения в cairopango canvas (эй, мы уже импортируем ghostscript в graphviz) или преобразовываем пользовательские формы PS извне в изображения, которые могут быть загружены драйвером cairopango. Это может занять не так много времени.

В любом случае потребуется опытный программист на C.

Наверное, ни у кого из нас нет много времени над этим работать (наше время было бы лучше использовать, пытаясь получить финансирование для поддержки проекта более общими способами, но у всех нас есть другие вакансии сейчас), но вы можете предложить награду за bountysource и посмотреть, что произойдет ....

3
27.02.2017, 13:53
2 ответа

Используйте это:

find . -type f -name "*.php" -exec sed -i'' -e 's/mysql_fetch_array(\$foo)/\$foo->fetch_array\(\)/g' {} +

Используйте \ для экранирования символа $ , а в новом значении для замены также необходимо экранировать скобку .

Итак, вам нужно использовать \ для ( и )

0
27.01.2020, 21:18
find . -type f -name "*.php" -exec sed -i -e 's/^.*mysql_fetch_array(\$\([^)]*\))/$\1->fetch_array()/' {} \;
4
27.01.2020, 21:18

Теги

Похожие вопросы