我正在尝试通过 bash 脚本将 malloc 的值更改为 1234m,但没有看到任何变化。 我认为这是我的正则表达式的问题,任何人都可以看到我做错了什么吗?
字符串
DAEMON_OPTS="-a :6081
-T localhost:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s malloc,256m"
法典
# get the memory allocation
echo "Enter the memory allocation"
read malloc
# update the default config
sed -ie 's/malloc,.*[0-9m]$/malloc,'$malloc'/gI' /etc/default/varnish
在 sed 模式中$
之前缺少一个"
。
顺便说一下,您的模式有效,但方式可能与预期不同:字符类[0-9m]
仅匹配一个字符,在这种情况下m
。该数字与 .*
匹配。更好的模式可能是malloc,[0-9]+m"$
。
试试这个 sed 命令:
在 Mac 上:
sed -E 's/malloc,[0-9]+m/malloc,'$malloc'/' /etc/default/varnish
或在 Linux 上:
sed -r 's/malloc,[0-9]+m/malloc,'$malloc'/' /etc/default/varnish
以下sed
行对我有用,将其包含在"
而不是'
中:
sed -ie "s/malloc,[0-9]+m$/malloc,$malloc/gI" /etc/default/varnish