我们有一个小问题会感谢任何帮助。
我们有以下路径:
/root/dir1/dir2/dir3/file.sav
我们也有:
/root/dir1/dir2
我们希望执行/root/dir1/dir2/dir3/file.sav
- /root/dir1/dir2
之类的操作,只获取dir3/file.sav
。
我们尝试使用tr -d
,但没有成功。
答案 0 :(得分:5)
不需要外部工具。 Bash可以自己解决这个问题。使用${variable#substring}
打印一个从开头删除子字符串的变量。例如:
$ PATH1=/root/dir1/dir2/dir3/file.sav
$ PATH2=/root/dir1/dir2
$ echo ${PATH1#${PATH2}/}
dir3/file.sav
答案 1 :(得分:0)
只提供其他替补......
bash
:
echo ${PATH1/${PATH2}\//}
<强> sed
强>
sed "s#$PATH2/##" <<< $PATH1
<强> awk
强>
awk -v var="$PATH2" '{sub(var"/","",$0)}1' <<< "$PATH1"
<强> replace
强>
replace "$PATH2/" "" <<< "$PATH1"