我想用一個腳本,還執行其他操作編輯配置文件替換多行文本。查找和命令行
該腳本需要找到某些連續的文本行並將其刪除。 原地需要粘貼一個新的配置,從舊配置所在的位置開始。在舊的和新的配置中,空間的使用都很重要。
在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輸入文件,顯示要在其他行加上所需的輸出,顯示發生後更換同外商投資企業之間的上下文來替換字符串。 –