linux - 在linux中的行与行之间插入行,其中该行包含特殊字符

标签 linux bash

我有一个文件,我需要在这些行之间添加一行:

[%- IF ssl.defined %]
ssl = [% ssl %]
[%- ELSE %]

..这应该导致以下结果

[%- IF ssl.defined %]
ssl = [% ssl %]
ssl_dh_parameters_length = 2048
[%- ELSE %]

我该怎么做?

理想情况下可以从 bash 脚本中运行

最佳答案

宽度sed:

sed '/\[%- ELSE %\]/i ssl_dh_parameters_length = 2048' file

[% -ELSE %] 行之前插入该行。

要在 ssl = [% ssl %][% -ELSE %] 之间插入:

sed '/ssl = \[% ssl %\]/,/\[%- ELSE %\]/ { 
  /\[%- ELSE %\]/i ssl_dh_parameters_length = 2048
}' file

如果您想“就地”编辑文件,请使用带选项 -i 的 sed。

sed -i '/ssl = \[% ssl %\]/,/\[%- ELSE %\]/ { 
  /\[%- ELSE %\]/i ssl_dh_parameters_length = 2048
}' file

关于linux - 在linux中的行与行之间插入行,其中该行包含特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35909505/

相关文章:

c++ - 添加 AM_LDFLAGS 对最终库没有影响,导致链接器错误

linux - 自主脚本

bash - 如何在 Bash 中为 Azure 容器实例创建 tcp Socket liveness Probe 替代品?

linux - 当我执行手动冒泡排序时,为什么我在 bash 中得到这个带有关联数组的奇怪输出?

linux - tty1 出现 "permission denied"的原因可能是什么?

c - 内存间接调用和寄存器间接调用的区别

linux - OpenGL 项目正在寻找 libcxts.so 库

regex - 删除 2 个匹配模式之间的 n 行,保留第一个匹配项并删除第二个匹配项

linux - 如何阻止 `read` 与 `IFS` 将空白字符合并在一起?

linux - 虚拟内存和每个项目的大小