在bash脚本中检索从中点开始的子字符串 使用BASH脚本,是否有一个简单的方法来提取一个子字符串,它从文件名的路径中间开始?

在bash脚本中检索从中点开始的子字符串 使用BASH脚本,是否有一个简单的方法来提取一个子字符串,它从文件名的路径中间开始?,bash,Bash,从研究中我发现了这一点,但从中点开始匹配子字符串似乎是不可能的 我有一个bash脚本,用于对镜像到不同备份驱动器上的特定目录和子目录的内容进行编目。使用dirname,我可以将路径分配给变量,但我不需要整个路径。下面是我可能要处理的一些路径的示例: /media/mediaLibrary/movies /medis/BackUp-01/movies/any_directory /mnt/BackUp-02/movies/any_directory/any_directory 我想要在电影前放下

从研究中我发现了这一点,但从中点开始匹配子字符串似乎是不可能的

我有一个bash脚本,用于对镜像到不同备份驱动器上的特定目录和子目录的内容进行编目。使用dirname,我可以将路径分配给变量,但我不需要整个路径。下面是我可能要处理的一些路径的示例:

/media/mediaLibrary/movies
/medis/BackUp-01/movies/any_directory
/mnt/BackUp-02/movies/any_directory/any_directory
我想要在电影前放下任何东西的必要步骤。上述样本将成为:

movies
movies/any_directory
movies/any_directory/any_directory
纯BASH方式:

for s in '/media/mediaLibrary/movies' '/medis/BackUp-01/movies/any_directory' '/mnt/BackUp-02/movies/any_directory/any_directory'
do
   echo "${s/*movies/movies}"
done
movies
movies/any_directory
movies/any_directory/any_directory

感谢您的快速输入。它在命令行中工作,但在我的脚本中不工作。你能帮忙吗?脚本
path=dirname$file(\n)path=${path/*movies/movies}
。[背单引号省略(\n)表示脚本中的新行]在我的文件中,所有这些都转储到,路径返回为空。如果您在问题中发布脚本,我肯定会为您提供进一步帮助。@dwlamb:我正在等待您的脚本为您提供修复方法的建议。正如您所看到的,请勿在注释中发布代码,因为这很难阅读。编辑你的问题并在那里提供你的代码。+1比一般的第一篇文章好。感谢您提供示例数据和预期输出。继续使用
{}
编辑工具保持可读性。祝你好运谢谢大家的反馈。@阿努巴瓦:不需要发布整个脚本。我采纳了你的建议,发现我做错了什么。脚本现在正在返回设计和预期的结果。