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

时间:2016-03-10 06:50:34

标签: linux bash

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

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

..应该导致以下

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

我该怎么做?

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

1 个答案:

答案 0 :(得分:2)

宽度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