Сложная замена строки - несколько файлов, несколько разных строк должны включать определенный текст

Мы выяснили, что проблема в самом squashfs. У него нет поддержки обнаружения плохих блоков, как указано здесь:

http://elinux.org/Support_read-only_block_filesystems_on_MTD_flash

Поэтому возможное решение - использовать другую файловую систему или использовать UBI для управления плохими блоками, а затем продолжать использовать squashfs.

0
17.04.2019, 13:24
1 ответ

Если я правильно понимаю вашу проблему, просто убедитесь, что используется шаблон, который соответствует только имени или идентификатору. Поскольку поля включают все до следующего открытия <, это должно быть просто:

sed -i -e '/<ac:structured-macro ac:name="jira"/s~\(<ac:parameter ac:name="server">\)[^<]*\(</ac:parameter>\)~\1Replacement Server Name\2~' entities.xml

с [^<]*, совпадающими со всеми символами, кроме <.

Обратите внимание, что это работает только для ввода, подобного этому. Теоретически файлы xml могут содержать разрывы строк или другие элементы, которые нарушат работу любого скрипта, не поддерживающего синтаксис xml. Тогда лучше используйте что-то вроде скрипта Python сimport xml.etree.ElementTree

0
28.01.2020, 03:49

Теги

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