【问题标题】:Prepend file content to match in sed在 sed 中添加要匹配的文件内容
【发布时间】:2018-07-01 04:34:21
【问题描述】:

我正在尝试将文件的内容 添加到 html 文档中的结束正文标记之前。我试过了

cat test.html | sed  -e $'/<\/body>/{ r insert.html ... }'

使用\np、\nd at ...的各种组合,但似乎所有内容都插入了标签之后。

如果可以在 insert.html 的内容周围添加额外的字符串常量,例如居中标签等,那就太好了。

【问题讨论】:

  • 我想说你在这里使用了错误的工具.. 使用 html/xml 解析器或带有 html/xml 模块的编程语言..

标签: text sed


【解决方案1】:

如果sed是你的硬性要求,你可以在GNU sed试试这个:

sed '/<\/body>/e cat insert.html' test.html

它使用 GNU 特定的e shell-command(此处为e cat filename),与r filename 不同,它将在当前循环结束之前执行之前(在处理&lt;/body&gt; 行之前/打印)。


注意(来自文档)r filename 将:

在当前循环结束或读取下一个输入行时,将要读取的文件名的内容排队并插入到输出流中。

e command:

[...] 与r command 不同,命令的输出将立即打印; r command 将输出延迟到当前周期结束。

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2019-06-07
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多