我想
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 命令就可以了。
謝謝你。
uj5u.com熱心網友回復:
perl -i.bak -wpe's/pm.max_children\s*=\s*\K([0-9] )/$1 3/e' file
這會保留備份,因為.bak; 如果您不需要備份,請洗掉它(測驗后)。
\K積極的后視洗掉所有先前的匹配,以便它們不再包含在整體匹配中$&,因此在它保留在字串中之前已經匹配的任何內容都不必在替換部分中恢復。
uj5u.com熱心網友回復:
使用sed
$ sed 's/\(.* \)\(.*\)/echo \1 \$((\2 3))/e' /usr/local/etc/php-fpm.d/www.conf
pm.max_children = 8
uj5u.com熱心網友回復:
方法有很多,這是其中之一:
perl -lpe 's/(?<= = )(\d)/${1} 3/e' <<< 'pm.max_children = 5'
對于完全匹配:
perl -lpe 's/pm.max_children = \K(\d)/${1} 3/e' <<< 'pm.max_children = 5'
只需匹配最后的數字:
perl -lpe 's/(\d)$/${1} 3/e' <<< 'pm.max_children = 5'
輸出:
pm.max_children = 8
對于檔案,您可以使用-i就地保存,而不是<<<(此處用于測驗的檔案)使用檔案。
perl -i -lpe '...' <FILE>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/470774.html
