2010-04-07 24 views
1

我有一個存儲在一個變量獲得的部分文件路徑在bash腳本

$ FULLPATH =路徑「/這/是/的/路徑/要/我的/ file.txt的」

我也有一個包含部分路徑的另一個變量

$偏=「/這/是/的/」

我想要讓我留下來從完整路徑中刪除部分路徑:

path/to/my/f ile.txt

這樣做的最佳方法是什麼?

+0

與往常一樣,我在發帖後30秒解決了問題。我通過sed運行路徑,並刪除部分路徑...傻我 – 2010-04-07 18:11:25

回答

3

使用bash的#模式匹配操作:

${FULLPATH#${PARTIAL}} 
+0

有沒有辦法修改這個,所以有一個可選的'/'?這樣,如果'$ PARTIAL'沒有'/',它仍然會被刪除? – David 2016-07-05 18:31:13

1

如果您確信$PARTIAL是一個實際的路徑:

result="${FULLPATH#$PARTIAL}" 
result="${result#/}" 
0
# echo $FULLPATH | sed 's#'"$PARTIAL"'##' 
3

這裏有一個小更詳細地Klatchko先生的優秀回答:

$ FULLPATH="/this/is/the/path/to/my/file.txt" 
$ PARTIAL="/this/is/the/" 
$ echo ${FULLPATH#${PARTIAL}} 
path/to/my/file.txt