我愿意
pm.max_children = 5
成为;
pm.max_children = 8
一直在研究它,但没有得到任何解决方案。\1 或\2 之类的反向引用似乎不适用于计算。
sed -i -E "s/(pm.max_children)[^=]*=\s*(.+)/\1 = $(echo \2+3)/" /usr/local/etc/php-fpm.d/www.conf
用perl命令也行,只要解决了。
谢谢。
最佳答案
perl -i.bak -wpe's/pm.max_children\s*=\s*\K([0-9]+)/$1 + 3/e' file
由于.bak
,这保留了备份;如果不需要备份,请将其删除(在测试后)。
\K
positive lookbehind删除所有以前的匹配项,以便它们不再包含在整体匹配项 $&
中,因此之前匹配的任何内容都保留在字符串中,并且不必在替换部分中恢复.
关于shell - 使用 sed 计算反向引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72107849/