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)
我知道我对星号通配符和字符有一些问题...也许正则表达式会在这里有所帮助?
使用这个代替:
echo "/var/log/dbhome_1/md5" | sed "s/dbhome_[0-9]\+/dbhome_\*/g"
Run Code Online (Sandbox Code Playgroud)
[0-9]是包含所有数字的字符类
因此[0-9]\+匹配一个或多个数字