gpt4 book ai didi

sed 如果不存在则添加行

转载 作者:行者123 更新时间:2023-12-05 08:24:28 24 4
gpt4 key购买 nike

我需要通过 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 参数进行就地编辑。

关于sed 如果不存在则添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6245018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com