строка поиска и строка замены

псевдонимы не обрабатывают аргументы. Определите функцию:

myfunc () {
    /dir1/dir2/dir3/dir4/executable "$1" fixed-argv2 fixed-argv3
}
1
14.07.2014, 12:06
2 ответа

Не следует использовать для этого что-то вроде sed/awk, а вместо этого использовать процессор xml/xslt, например xmlstarlet.

Создайте xslt-файл с шаблоном, например, и сохраните его в файле transform.xsl:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="tag">
    <xsl:element name="{@name}">
      <xsl:attribute name="name">
        <xsl:value-of select="@name"/>
      </xsl:attribute>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

Затем вы можете применить преобразование к xml документу через xmlstarlet tr transform.xsl input.xml

1
28.01.2020, 01:56

Делайте, что хотите, но вот:

STR='<tag name="abc"></tag>'
AUX=$(echo $STR | cut -d"\"" -f2)
echo $STR | sed "s/tag/$AUX/g"
-1
28.01.2020, 01:56

Теги

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