Comment puis-je insérer le contenu d'un fichier dans un autre fichier juste avant la ligne

Comment je peux insérer le contenu d'un fichier dans un autre fichier juste avant une ligne spécifique à l'aide de sed?

exemple, j'ai file1.xml qui sont les suivantes:

        <field tagRef="376">
        </field>
        <field tagRef="377">
        </field>
        <field tagRef="58">
        </field>
        <group ref="StandardMessageTrailer" required="true"/>
    </fieldList>
</message>

et file2.xml a la suite:

        <field tagRef="9647">
            <description>Offset</description>
        </field>
        <field tagRef="9648">
            <description>Offset Units/Direction</description>
        </field>
        <field tagRef="9646">
            <description>Anchor Price</description>
        </field>

comment puis-je insérer le contenu de fichier2 dans fichier1 juste avant

<group ref="StandardMessageTrailer" required="true"/>

de sorte qu'il ressemble à ceci:

       <field tagRef="376">
        </field>
        <field tagRef="377">
        </field>
        <field tagRef="58">
        </field>
        <field tagRef="9647">
            <description>Offset</description>
        </field>
        <field tagRef="9648">
            <description>Offset Units/Direction</description>
        </field>
        <field tagRef="9646">
            <description>Anchor Price</description>
        </field>
        <group ref="StandardMessageTrailer" required="true"/>
    </fieldList>
</message>

Je sais comment insérer après cette ligne à l'aide

sed 'group ref="StandardMessageTrailer"/r file2.xml' file1.xml > newfile.xml  

mais je veux l'insérer avant.

apprécions l'aide

Je serais ravi de voir une réelle sed solution - je sais que cela doit être possible avec quelque chose comme /StandardMessageTrailer/{x;r insert;G} mais ce n'est pas tout à fait...

OriginalL'auteur user301200 | 2010-03-25