bash – 使用sed从字符串中删除子串

我正在尝试使用sed删除变量中的子串,如下所示:
PRINT_THIS="`echo "$fullpath" | sed 's/${rootpath}//' -`"

哪里

fullpath="/media/some path/dir/helloworld/src"
rootpath=/media/some path/dir

我想像这样回应其他的全路径(我正在使用这个整个目录,所以我需要将其存储在变量中并自动执行

echo "helloworld/src"

使用变量将是

echo "Directory: $PRINT_THIS"

问题是,我不能得到sed去除子串,我做错了什么?谢谢

你不需要sed,只有一点就够了:
$fullpath="/media/some path/dir/helloworld/src"
$rootpath="/media/some path/dir"
$echo ${fullpath#${rootpath}}
/helloworld/src
$echo ${fullpath#${rootpath}/}
helloworld/src
$rootpath=unrelated
$echo ${fullpath#${rootpath}/}
/media/some path/dir/helloworld/src

查看String manipulation文档.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...