我需要通过sed
(或类似程序)更改php.ini配置文件。
我需要添加以下文本:
extension=solr.so
该行必须添加为配置文件中的行号941。但是,如果文件已经存在,则不应再次添加。
我想有两种方法:1)用文本替换第941行,或者2)搜索文本,如果不匹配,则将其添加到第941列。
我有以下命令可以很好地工作,除了如果脚本再次运行,会再次添加该行:
sed '941i
extension=solr.so' /etc/php5/apache2/php.ini > /etc/php5/apache2/php.ini
如果该行已经存在,我如何确保该命令不会添加该行?
最简单的方法是在使用grep
之前进行测试,例如:
grep -q -e 'extension=solr.so' file || sed '...'
此外,您需要恰好该行,这也是一种隔阂。你应该把它加在最后,或者类似的东西。
此外,请注意,应将相同的文件作为输入和输出,而不应使用。这可能会严重损坏文件。您应该使用-i
-sed参数进行就地编辑。