Заменить подчеркивание в нескольких файлах XML

Контекст безопасности препятствовал запуску сценария. Журналы systemdпоказали, что сценарий не запускался, хотя всем пользователям было разрешено его выполнять; какой-то политике безопасности не понравился путь к скрипту.

Я переместил скрипт в /binи ошибки тут же разрешились сами собой.

0
22.05.2020, 14:07
1 ответ

Аналогично решению xmlstarlet, вот как это сделать с помощью утилиты Saxon Gizmo:

java net.sf.saxon.Gizmo -s:/tmp/xml
/>update //import_url translate(., '_', '-')
/>save /tmp/xml
/>quit

https://saxonica.com/documentation/index.html#!Гизмо

Чтобы обработать все файлы в каталоге, вы можете запустить это преобразование XSLT 3.0:

<xsl:transform version="3.0" expand-text="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:mode on-no-match="shallow-copy"/>

<xsl:template match="import_url">
  <xsl:copy>{translate(., '_', '-')}</xsl:copy>
</xsl:template>

<xsl:template name="xsl:initial-template">
  <xsl:for-each select="collection('file:///my/input/directory?recurse=yes')">
    <xsl:result-document href="file:///my/output/directory/{tokenize(document-uri(),'/')[last()]}">
      <xsl:apply-templates/>
    </xsl:result-document>
  </xsl:for-each>
</xsl:template>

</xsl:transform>
1
18.03.2021, 23:34

Теги

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