微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式-在bash脚本中查找文件夹名称的一部分

试图在文件夹结构中查找特定部分,但是在bash脚本中使用RegEx遇到麻烦-furthermore I don’t speak RegEx fluently.我需要知道我传递给bash脚本的文件夹“类型”.根据当前所在的文件夹“类型”,它需要运行不同的操作.

以下示例文件夹结构:

/home/usr/media/series/Great.Series.S01E02.something
/home/usr/media/movies/Some.Movie.Here
/home/usr/media/music/An Album Here
/home/usr/media/music/Another Album

我玩过的RegExr,但找不到解决方案:http://regexr.com/39mk4.我不知道如何在bash中执行此操作.

我正在尝试在媒体下面找到文件夹的名称.所以基本上我想创建这样的东西(非bash伪代码):

$currentFolder = '/home/usr/media/series/Great.Series.S01E02.something'
//magic, the following would need to be series|movies|music depending on the input path
$currentFolder = 'series'
switch ($currentFolder) {
  case 'series':
    //something
   case 'movies':
    //something else
   case 'music':
    //more
}

一个两部分的问题:

>如何grep或使用find或更好的方法获取特定的currentFolder?
>我能在一个明智的案例陈述中做到所有这些吗?

解决方法:

您可以在case语句中使用basename和dirname:

currentFolder='/home/usr/media/series/Great.Series.S01E02.something'
currentFolder=$(basename $(dirname $currentFolder))
case $currentFolder in
    series)
        # Do something
        ;;
    movies)
        # Do something else
        ;;
    music)
        # another
        ;;
    *)
        ;;
esac

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐