2017-01-16 18 views
0

如果在/不同之後如何拆分這個字符串?有和沒有子域的路徑拆分字符串

我有這樣的路徑:

/HDD1/Movies/Excursion.2016/ 
/HDD1/Movies/Excursion.2016/name1 
/HDD1/Movies/Excursion.2016/name2 
/HDD1/Movies/Excursion.2016/name3 

我的腳本:

d=/HDD1/Movies/Excursion.2016/ 
dname=${d#/*/} 
dname=${dname%/*} 
echo $dname 

輸出:電影/ Excursion.2016

d=/HDD1/Movies/Excursion.2016/name1 
dname=${d#/*/} 
dname=${dname%/*} 
echo $dname 

輸出:電影/ Excursion.2016

我總是wa NT一切/電影/

例子:

d=/HDD1/Movies/Excursion.2016/ 
output : Excursion.2016 

d=/HDD1/Movies/Excursion.2016/name1 
output : Excursion.2016/name1 

d=/HDD1/Movies/Excursion.2016/name2 
output : Excursion.2016/name2 
+0

再添加一個'%':'DNAME = $ {DNAME% %/ *}' –

+0

so dname = $ {dname %%/*}其輸出:Movies,dir電影也可以不同 – Tobi

回答

0

試試這個(使用警告,具體的bash語法):

main_dir=/HDD1 
complete_path="$main_dir/Movies/Excursion.2016/name2" 
if 
    [[ "$complete_path" =~ $main_dir/[^/]+/(.+)$ ]] 
then 
    echo "${BASH_REMATCH[1]}" 
else 
    echo "Path not valid" >&2 
fi 
+0

dirname電影可能不同。 – Tobi

+0

在你的腳本中,目錄是硬編碼的,那它怎麼會有所不同呢?請多描述一下您的預期用法。 – Fred

+0

我無法設置main_dir main_dir =/HDD1/Movies,只有HDD1不能設置爲main_dir。目錄電影muss Changeable – Tobi

相關問題