我想用一个脚本,还执行其他操作编辑配置文件替换多行文本。查找和命令行
该脚本需要找到某些连续的文本行并将其删除。 原地需要粘贴一个新的配置,从旧配置所在的位置开始。在旧的和新的配置中,空间的使用都很重要。
在configfile.php,此段文字:
'session' =>
array (
'save' => 'files',
),
需要找到并与内容我把replacement.txt在同一地点所取代。
基于回答类似的问题,我试过的事情之一就是:
cat replacement.txt <(sed -i '1,/ 'session' => \n array (\n 'save' => 'files',\n ),/d' configfile.php) > configfile.php
这将导致一个空文件。
cat replacement.txt <(sed -i '1,/ 'session' => \n array (\n 'save' => 'files',\n ),/d' configfile.php) > newfile.php
这和猫replacement.txt> newfile.php一样,我想编辑一个文件,而不是创建一个新文件。
有谁知道什么是错我的语法,我该如何解决?
我已经问过这个问题here之前,但我没有完全理解我我想要的东西,所以它变得有点太复杂和混乱。我使用Debian Linux。
编辑基于评论:
的replacement.txt看起来是这样的:
'session' =>
array (
'save' => 'redis',
'redis' =>
array (
'host' => '127.0.0.1',
'other_variable' => 'other_setting',
)
)
),
它已经缩进的方式应该和可以插入原样。 使用awk或sed都很好。
谢谢你的帮助。我已经更新了这个问题。 – phol
唯一的东西,现在缺少的是简洁configfile.php输入文件,显示要在其他行加上所需的输出,显示发生后更换同外商投资企业之间的上下文来替换字符串。 –