以下命令按预期工作,并显示redis.conf文件中的数据库数量。我需要做的是将其更改为32并使用单个命令将其保存回同一文件。在sed中使用通配符
# grep ^databases redis.conf | awk '{print $2}'
16
以下命令只适用于数字为16的情况。如何将未知数字更改为32?
sed -i 's/databases\ 16/databases\ 32/' redis.conf
以下命令按预期工作,并显示redis.conf文件中的数据库数量。我需要做的是将其更改为32并使用单个命令将其保存回同一文件。在sed中使用通配符
# grep ^databases redis.conf | awk '{print $2}'
16
以下命令只适用于数字为16的情况。如何将未知数字更改为32?
sed -i 's/databases\ 16/databases\ 32/' redis.conf
你可以使用[0-9]*
或\d
或相应的POSIX字符类([:digit:]
)。像这样:
sed -i 's/databases\ [0-9]*/databases\ 32/' redis.conf
注:\d
可能会或可能不会因为壳逸出需要一个额外的反斜线。 另请注意:存在sed
(和awk
)的不同口味。
为了实现最高的便携性,我认为[0-9]
和[:digit:]
是最好的选择。要匹配一定数量的重复,重复表达式。
可以保证只有两位数吗?
sed -i 's/^databases [0-9][0-9]/databases 32/' redis.conf