Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 带和不带子IRS的路径拆分字符串_String_Bash_Variables_Split_Sh - Fatal编程技术网

String 带和不带子IRS的路径拆分字符串

String 带和不带子IRS的路径拆分字符串,string,bash,variables,split,sh,String,Bash,Variables,Split,Sh,如果在后面/不同,如何拆分此字符串 我有这样的途径: /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 输出:2016年

如果在后面/不同,如何拆分此字符串

我有这样的途径:

/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
输出:2016年电影/游览

d=/HDD1/Movies/Excursion.2016/name1
dname=${d#/*/}
dname=${dname%/*}
echo $dname
输出:2016年电影/游览

d=/HDD1/Movies/Excursion.2016/name1
dname=${d#/*/}
dname=${dname%/*}
echo $dname
我总是想要一切/电影/

例如:

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
尝试以下操作(警告,使用了特定于bash的语法):


再添加一个
%
dname=${dname%%/*}
so dname=${dname%%/*}其输出:Movies,dir Movies在脚本中也可以是不同的,目录是硬编码的,那么它怎么会不同呢?请详细描述一下您的预期用途。我无法设置main_dir main_dir=/HDD1/Movies,只有HDD1无法设置为main_dir。dir Movies muss ChangeableI修改了建议的解决方案,使/HDD1之后的一级目录“浮动”(忽略)。如果您想了解有关所使用的bash语法(带模式匹配的条件[[])的更多信息,请发表评论。