3

我们有一个小问题,不胜感激。

我们有以下路径:

/root/dir1/dir2/dir3/file.sav

我们还有 :

 /root/dir1/dir2

我们想做一些类似的事情/root/dir1/dir2/dir3/file.sav-/root/dir1/dir2并且只得到dir3/file.sav.

我们尝试过合作tr -d但没有成功。

4

2 回答 2

5

无需外部工具。Bash 可以自己解决这个问题。用于${variable#substring}打印带有从开头删除的子字符串的变量。例子:

$ PATH1=/root/dir1/dir2/dir3/file.sav
$ PATH2=/root/dir1/dir2
$ echo ${PATH1#${PATH2}/}
dir3/file.sav
于 2013-05-26T18:04:15.130 回答
0

只是提供其他替代品...

bash

echo ${PATH1/${PATH2}\//}

sed

sed "s#$PATH2/##" <<< $PATH1

awk

awk -v var="$PATH2" '{sub(var"/","",$0)}1' <<< "$PATH1"

replace

replace "$PATH2/" "" <<< "$PATH1"
于 2013-05-26T20:00:58.403 回答