假设我有这个目录
/home/project/program.c我想把它改成
project/program.c我已经将实际路径设置为变量,并尝试删除"/home/“,但它仍然存在。
fpath="$(realpath $file)"
ffpath=${fpath//$/home//}
echo "$ffpath"有人能提供一些提示吗?
发布于 2018-03-31 07:07:06
较短的解决方案是使用前缀模式删除:
fpath="$(realpath $file)"
ffpath=${fpath#/home/}
echo "$ffpath"但是,如果坚持使用模式替换,则必须引用斜杠,因为它们是特殊分隔符:
fpath="$(realpath $file)"
ffpath=${fpath/\/home\/}
echo "$ffpath"发布于 2018-03-31 07:09:54
以下解决方案可以帮助您在同样的问题上。理想情况下,bash扩展参数应该足够满足这一需求,但也很少增加解决方案。
var="/home/project/program.c"解决方案1:使用cut的
echo "$var" | cut -d"/" -f3-解2:使用参数展开的。
echo "${var#*/*/}"解决方案3:使用sed的。
echo "$var" | sed 's|\(/[^/]*\)/\(.*\)|\2|'发布于 2018-03-31 08:55:19
您可以使用basename和dirname
x='/home/project/program.c'
ffpath=$( basename "$( dirname $x)" )"/"$( basename $x )
echo "$ffpath"https://stackoverflow.com/questions/49585124
复制相似问题