如何避免在 perl 单行代码中解释错误的变量名



我想将 apache 配置文件的 MinSpareThreads 指令值从 75 替换为 125。

我写了如下所示的perl单行代码。

perl -pi.$(date +%Y%m%d) -e 's;MinSpareThreads(s+)(d+);MinSpareThreads$1125;g' httpd-mpm.conf

但是,它输出的结果低于结果。

root@8c659a9d5907:/usr/local/apache2/conf/extra# diff httpd-mpm.conf.20180130 httpd-mpm.conf
46c46
<     MinSpareThreads         75
---
>     MinSpareThreads
63c63
<     MinSpareThreads         75
---
>     MinSpareThreads
83c83
<     MinSpareThreads         25
---
>     MinSpareThreads
97c97
<     MinSpareThreads          5
---
>     MinSpareThreads

似乎 1 美元无意中被识别为 1125 美元。$1125 不存在。所以上面显示了结果。

你知道有什么方法可以避免上述错误的解释吗?

为了在名称

与周围文本无法区分的上下文中使用 Perl 变量,您可以将名称(不包括符号(放在 { ... } 中。所以,与其有$1125,不如说你会${1}125.

相关内容

  • 没有找到相关文章

最新更新