将字符串替换为星号 bash

Sag*_*agi 5 regex bash sed rhel

我试图从用户那里获取路径作为输入。
用户将为特定应用程序输入特定路径:

script.sh /var/log/dbhome_1/md5
Run Code Online (Sandbox Code Playgroud)

我想将目录号(在这种情况下 - 1)转换为 *(星号)。稍后,脚本将在此路径上执行一些逻辑。

当我在输入上尝试 sed 时,我被数字困住了 -

echo "/var/log/dbhome_1/md5" | sed "s/dbhome_*/dbhome_\*/g"
Run Code Online (Sandbox Code Playgroud)

输入将是 -

/var/log/dbhome_*1/md5
Run Code Online (Sandbox Code Playgroud)

我知道我对星号通配符和字符有一些问题...也许正则表达式会在这里有所帮助?

Cas*_*yte 2

使用这个代替:

echo "/var/log/dbhome_1/md5" | sed "s/dbhome_[0-9]\+/dbhome_\*/g"
Run Code Online (Sandbox Code Playgroud)

[0-9]是包含所有数字的字符类

因此[0-9]\+匹配一个或多个数字