У меня следующий формат файла:
<common>
fitnes=0
genetic=1
method=0
</common>
<inputs>
foo=bar
bar=foo
</inputs>
<limits>
balance=200.00
</limits>
и я хотел бы удалить все, что находится между <inputs>
и </inputs>
(исключая сам шаблон) и заменить его содержимым из другого файла (например foo.txt
). Другими словами, строки с foo=bar
и bar=foo
будут заменены другим содержанием.
Вероятно, это может быть похоже на удаление многострочного соответствия , например:
:g/<inputs/,/inputs>/d
но я не уверен, что мне следует заменить d
, чтобы вставить содержимое другого файла, но я хочу сохранить соответствующий шаблон.
Подобный подход будет заключаться в удалении внутреннего содержимого тега HTML , например,
:/<inputs>/norm vitd
но тогда я не знаю, как бы вы добавили в него содержимое из файла.
В идеале я пытаюсь найти один лайнер, так как он будет частью другого скрипта.
Как я могу этого достичь?
ex
скрипта, где я могу указать, какой файл вставлять в зависимости от пользовательских аргументов ввода.Если это еще одна попытка синтаксического анализа XML с помощью инструментов, отличных от XML, не делайте этого.
Решения здесь действительны, но намерение не может быть. Если XML не из хорошо прирученного источника, в теге могут быть экранированные символы, CDATA или пробелы!
Таким образом, xsltproc из команды в vi может справиться с этим.
источник
ini
файл, имеющий эти 3 XML-подобных тега.