查找模式并在找到关键字时在数组之间添加

查找模式并在找到关键字时在数组之间添加

我有一个 PHP 配置文件,我想通过脚本更改它。配置文件包含几个需要我更改的块。一个块包含以下内容:

'KEYWORD1' =>
  array (
    Random text here
  ),

几个块:

'KEYWORD2' =>
  array (
    Random text here
  ),

我想知道是否可以在array.根据KEYWORD添加某些文本。

该脚本的输出示例如下:

'KEYWORD2' =>
  array (
    'enable' => true,
    'email' => false,
  ),

理想情况下,我能够找到关键字并仅在匹配时添加文本。例如:搜索KEYWORD1并添加某些配置,如上面的块中的配置。

有小费吗?有想法吗?

答案1

我测试了 KEYWORD2,效果很好您可以在循环中添加关键字,并且您想要更改

for i in KEYWORD2
do
sed -n  '/'$i'/,/),/p' l.txt|sed "s/array.*/&\n'enable' => true,\n'email' => false,/g"| sed '/Random/d'
done

输出

'KEYWORD2' =>
  array (
'enable' => true,
'email' => false,
  ),

=================================================== ========== 假设您想同时更改keyword1和keyword2

使用下面的代码

for i in KEYWORD1 KEYWORD2;
 do
sed -n  '/'$i'/,/),/p' l.txt|sed "s/array.*/&\n'enable' => true,\n'email' => false,/g"| sed '/Random/d'
done

相关内容