我需要通过sed(或类似)在php.ini配置文件中进行更改.
我需要添加以下文字:
extension=solr.so
Run Code Online (Sandbox Code Playgroud)
必须在配置文件中将该行添加为行号941.但是,如果文件已存在,则不应再次添加.
我猜有两种方法:1)用文本替换第941行,或者2)搜索文本,如果没有匹配则将其添加到第941行.
我有以下命令可以正常工作,除非再次运行脚本再次添加行:
sed '941i\
extension=solr.so' /etc/php5/apache2/php.ini > /etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)
如果该命令已存在,如何确保此命令不添加该行?
Die*_*lla 11
最简单的方法是在使用前进行测试grep,例如:
grep -q -e 'extension=solr.so' file || sed '...'
Run Code Online (Sandbox Code Playgroud)
而且,您需要完全相同的线路.你应该在最后添加它,或类似的东西.
另请注意,永远不应该使用相同的文件作为输入和输出.这可能会严重损坏文件.您应该使用sed参数进行就地编辑.-i