我们有一个小问题,不胜感激。
我们有以下路径:
/root/dir1/dir2/dir3/file.sav
我们还有 :
/root/dir1/dir2
我们想做一些类似的事情/root/dir1/dir2/dir3/file.sav
-/root/dir1/dir2
并且只得到dir3/file.sav
.
我们尝试过合作tr -d
但没有成功。
无需外部工具。Bash 可以自己解决这个问题。用于${variable#substring}
打印带有从开头删除的子字符串的变量。例子:
$ PATH1=/root/dir1/dir2/dir3/file.sav
$ PATH2=/root/dir1/dir2
$ echo ${PATH1#${PATH2}/}
dir3/file.sav
只是提供其他替代品...
bash
:
echo ${PATH1/${PATH2}\//}
sed
:
sed "s#$PATH2/##" <<< $PATH1
awk
:
awk -v var="$PATH2" '{sub(var"/","",$0)}1' <<< "$PATH1"
replace
:
replace "$PATH2/" "" <<< "$PATH1"