Insertion plusieurs lignes dans fichier (ksh)

Résolu
Atef -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je suis un débutant en shell (ksh) et j'ai besoin de faire le traitement suivant:
J'ai besoin d'insérer plusieurs lignes dans un fichiers xml juste avant la fin d'une balise:
example:
<ActionMapping>
<Action name="ParamChange" value="s3i">
<Task name="parameter change v3" description="parameter Change version 3"/>
</Action>
<Action name="ParamChange" value="v4m">
<Task name="parameter change v4" description="parameter Change version 4"/>
</Action>
</ActionMapping>


je veux insérer avant la balise </ActionMapping> les lignes suivantes
<Action name="UpgradeSession" value="v1">
<Task name="upgrade session" description="upgrade sessions version 1"/>
</Action>


Merci d'avance de votre aide.
Configuration: solaris

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    [jp@MDK-2008 trash]$ cat atef
    <ActionMapping>
    <Action name="ParamChange" value="s3i">
    <Task name="parameter change v3" description="parameter Change version 3"/>
    </Action>
    <Action name="ParamChange" value="v4m">
    <Task name="parameter change v4" description="parameter Change version 4"/>
    </Action>
    </ActionMapping>
    
    [jp@MDK-2008 trash]$ sed -i.BAK '\#</ActionMapping>#i\
    <Action name="UpgradeSession" value="v1">\
    <Task name="upgrade session" description="upgrade sessions version 1"/>\
    </Action>
    ' atef
    
    [jp@MDK-2008 trash]$ cat atef
    <ActionMapping>
    <Action name="ParamChange" value="s3i">
    <Task name="parameter change v3" description="parameter Change version 3"/>
    </Action>
    <Action name="ParamChange" value="v4m">
    <Task name="parameter change v4" description="parameter Change version 4"/>
    </Action>
    <Action name="UpgradeSession" value="v1">
    <Task name="upgrade session" description="upgrade sessions version 1"/>
    </Action>
    </ActionMapping>
    [jp@MDK-2008 trash]$ 
    ;-))
    0
    1. Atef
       
      Salut
      c magique :-)
      Merci beaucoup.
      0
    2. manou
       
      Bonjour,
      Merci pour votre aide mais est ce que vous pouriez me dire comment éditer les caractères spéciaux dans ce cas.
      mon cas est le suivant : la chaîne que je veux insérer contient le caractère " ' "
      Voici la chaine :
      <xsl:stylesheet
      xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
      <xsl:output method="xml" />
      <xsl:param name="host"/>
      <xsl:param name="port"/>

      <xsl:template match="/">
      <xsl:apply-templates/>
      </xsl:template>

      <xsl:template match="config-property[@name='ConnectionURL']">
      <config-property type="java.lang.String" name="ConnectionURL">jdbc:hsqldb:hsql://<xsl:value-of select='$host'/>:<xsl:value-of select='$port'/></config-property>
      </xsl:template>

      <xsl:template match="*|@*">
      <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
      </xsl:copy>
      </xsl:template>
      </xsl:stylesheet>
      ]]>


      Merci
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > manou
         
        Suffit de protéger les " ' " par des anti-slash " \' ".
        0
      2. manou > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        ça n'a pas marché.
        Ce que j'ai fait c'est :
        déclarer la variable QUOTE
        puis j'ai utilisé la syntaxe suivante :

        <xslt-config configName="Configuration"><![CDATA[\
        <xsl:stylesheet\
        xmlns:xsl='"$QUOTE"'http://www.w3.org/1999/XSL/Transform'"$QUOTE"' version='"$QUOTE"'1.0'"$QUOTE"'>\
        <xsl:output method="xml" />\
        <xsl:param name="port"/>\
        <xsl:template match="/">\
        <xsl:apply-templates/>\
        </xsl:template>\
        <xsl:template match="attribute[@name='"$QUOTE"'serverBindPort'"$QUOTE"']">\
        <attribute type="java.lang.String" name="serverBindPort"><xsl:value-of select='"$QUOTE"'$port'"$QUOTE"'/></attribute>\


        Merci.
        0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Affiche ce que tu veux exactement avec un fichier AVANT et APRÈS.
    0