以下命令按預期工作,並顯示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