首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将一个文件的内容插入到另一个文件的特定行之前

如何将一个文件的内容插入到另一个文件的特定行之前
EN

Stack Overflow用户
提问于 2010-03-25 08:14:51
回答 1查看 24.1K关注 0票数 20

如何使用sed将一个文件的内容插入到另一个文件中的特定行之前?

例如,我有一个file1.xml,它具有以下内容:

代码语言:javascript
复制
        <field tagRef="376">
        </field>
        <field tagRef="377">
        </field>
        <field tagRef="58">
        </field>
        <group ref="StandardMessageTrailer" required="true"/>
    </fieldList>
</message>

file2.xml包含以下内容:

代码语言:javascript
复制
        <field tagRef="9647">
            <description>Offset</description>
        </field>
        <field tagRef="9648">
            <description>Offset Units/Direction</description>
        </field>
        <field tagRef="9646">
            <description>Anchor Price</description>
        </field>

如何将file2的内容插入到之前的file1中

代码语言:javascript
复制
<group ref="StandardMessageTrailer" required="true"/>

所以它看起来像这样:

代码语言:javascript
复制
       <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>

我知道如何在该行后面插入,使用

代码语言:javascript
复制
sed 'group ref="StandardMessageTrailer"/r file2.xml' file1.xml > newfile.xml  

但我想把它插入之前。

感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2010-03-25 08:21:30

代码语言:javascript
复制
f2="$(<file2)"
awk -vf2="$f2" '/StandardMessageTrailer/{print f2;print;next}1' file1 

如果你想要sed,这里有一种方法

代码语言:javascript
复制
sed  -e '/StandardMessageTrailer/r file2' -e 'x;$G' file1
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2512362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档