linux - 如何在 sed 中的给定行下方插入多行且行包含斜杠

标签 linux bash sed scripting

我正在尝试在文件中的一行下方插入以下行:

<Test>
  <Document>
    ThisIsATest
  <Document>
</Test>

我想在下面插入的行是This is a test.

我可以使用命令 sed -i '/test/aThis is new text' test2.txt 在其下方插入常规文本,文件将包含:

This is a test
This is new text

困难的部分是我似乎无法使用带有斜杠的多行项目来做到这一点。关于如何做到这一点有什么想法吗?我不必使用 sed 或 awk;任何其他 Linux 实用程序也可以。

最佳答案

您可以使用 sed 的 r -> 读取文件

将多行替换文本保存在文件中,例如 xml.txt,只需执行以下操作:

sed -i '/test/r xml.txt' file

你会得到你想要的。

关于linux - 如何在 sed 中的给定行下方插入多行且行包含斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53234482/

相关文章:

ruby-on-rails - 在 ubuntu 14.04 中安装 rvm

linux - 如何使用 bash 在 Linux 上删除多个文件中的多行

python - 删除文本文件中的非重复行

linux - 将 bash -s 与其他参数一起使用

linux - 如何获取以所需域结尾或不以所需域结尾的电子邮件?

linux - Xubuntu 13.10 上的 Haskell 7.6.3 : Can't import Monad. Control.Error

java - 标准 java 库的 java-doc 问题

linux - 解析两个映射文件并提取特定 clientId 的映射

c++ - ARM Embedded Linux (AM335x),断电后文本文件内容被删除

linux - 如何通过 AJP13 自定义 worker 选择流程