在 bash 脚本中查找文件夹名称的一部分

2023-11-29

尝试在文件夹结构中查找特定部分,但我在 bash 脚本中使用 RegEx 时遇到问题 -此外,我的正则表达式说得不太流利。我需要知道我传递给 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 中执行此操作。

我正在尝试查找文件夹的名称below media。所以基本上我想创建这样的东西(非 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
}

一个由两部分组成的问题:

  1. 我如何grep or use find或者更好的东西来获得特定的currentFolder?
  2. 我可以聪明地完成这一切吗case陈述?

您可以使用basename and dirname with case声明:

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 bash 脚本中查找文件夹名称的一部分 的相关文章

  • “alias: =: not found”,且未定义别名,在 .bashrc 中使用“alias ll = 'ls -l'”

    我在 Mac OSX 上并尝试在 bashrc 中添加一些基本别名 例如alias ll ls l 我在 bash profile 中获取了 bashrc 启动时它识别出我在 bashrc 中的函数 但是 每次添加别名然后尝试启动它时 我都
  • Bash 脚本跳过提取受密码保护的档案

    我有一个脚本 它使用命令对某些文件夹中的特定 zip 和 或 tar gz 存档进行批量提取 unzip o zip path d destination folder 不幸的是 当存档受密码保护时 脚本会停止并等待密码输入 有没有办法省略
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • 正则表达式拒绝连续字符

    我对正则表达式仍然很陌生 基本上我需要做的是创建一个接受数字和字母但不允许输入连续字符的规则 例如 abcd gt 好的 abbcd gt 坏的 我已经完成了大部分工作 但我无法弄清楚的部分是如何禁止连续字符 到目前为止我的代码 A Za
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • Linux >2.6.33:可以使用 sendfile() 来实现更快的“猫”吗?

    必须将大量大文件连接成一个更大的单个文件 我们目前使用 cat file1 file2 output file but are wondering whether it could be done faster than with that
  • 当在 python linux 中执行命令 os.system() 时,在 python 中给出响应 yes/no

    考虑一个像这样的命令 yum install boto 当我在终端中执行时 要继续 会询问我是 否 我可以像这样用 python 回应它吗 os system yum install boto Next Yes 将通过相同的 python
  • 使用 sed 将反斜杠替换为斜杠[重复]

    这个问题在这里已经有答案了 我需要更换 with 我有一个文件 其中包含 test test2 test3 test4 I tried VRS Ruta cat ruta lst sed s g sed s g output test te
  • 使用Java获取CSS文件中图像的URL?

    我正在尝试使用 Java 获取远程 CSS 文件中图像 所有 MIME 类型 的 URL 我正在使用 jsoup 来获取 css 的 URL 经过无数个小时的观看CSS解析器 http cssparser sourceforge net 由
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 用于替换前 5 个数字的正则表达式,无论它们之间有什么?

    我正在努力实现以下匹配 Input 123 45 6789 123456789 1234 正则表达式尝试输出 d 5 123 45 6789 123456789 1234 d 2 3 123 45 6789 123456789 1234 d
  • 使用 C++ 中的 Boost 正则表达式缩小 HTML

    Question 如何使用 C 缩小 HTML 资源 外部库可能是答案 但我更希望改进当前代码 尽管我很期待其他的可能性 当前代码 这是我在c 中的解释以下答案 https stackoverflow com a 5324014 57079
  • BeagleBone Black 如何用作大容量存储设备?

    是否可以使用 BB 作为大容量存储设备 我希望将其连接到可以从 USB 连接 例如 USB 闪存驱动器 读取文件的音频播放器并充当包含一个特定文件夹的数据存储设备 及其子文件夹 从文件系统 如果可能 在连接到开发板的闪存驱动器上 正如设备规
  • 通过 Node.js 运行 bash 脚本 - 非法选项 -o pipelinefail

    我正在尝试使用 Node js 执行 bash 脚本child process exec 然而它在文件的第二行爆炸 usr bin env bash set eo pipefail TRACE set x echo we are here
  • 通过名称获取进程ID

    我想在 Linux 下获得一个给定其名称的进程 ID 有没有一种简单的方法可以做到这一点 我还没有在 C 上找到任何可以轻松使用的东西 如果追求 易于使用 char buf 512 FILE cmd pipe popen pidof s p
  • 如何在 Ubuntu/Linux 发行版中安装 Tesseract-OCR 3.03?

    我和一个朋友有兴趣为 CV 项目训练 tesseract OCR 引擎 我们尝试使用一些包装器 例如 PyTesser 和 pyocr 但结果目前不如我们需要的那么准确 因此 我们希望尝试训练超立方体以更好地实现我们的目的 即识别食品标签上
  • 正则表达式等价

    有没有办法找出两个任意正则表达式是否等价 对我来说看起来很复杂的问题 但可能有一些 DFA 简化机制之类的 要测试等价性 您可以计算的表达式并进行比较
  • 使用 Beautifulsoup 和正则表达式提取 10-K Edgar 文件中的文本

    我想从大约 10000 个文件中自动提取 1A 风险因素 部分并将其写入 txt 文件 可以找到带有文件的示例 URLhere https www sec gov Archives edgar data 1800 0001047469190

随机推荐

  • git rebase -i 和 gvim 不等我保存?

    当使用 git rebase i 和 core editor gvim 时 消息 成功重新设置基址并更新了 refs heads master 在我实际保存允许我选择 重写 挤压 提交的文件之前立即出现 gvim 会弹出一条消息 指出该文件
  • java 8中从超类继承方法而不是从实现接口继承默认方法的意义

    我在阅读有关 java 8 默认方法的文章时遇到了以下段落here 如果层次结构中的任何类具有具有相同签名的方法 则默认方法将变得无关紧要 默认方法不能覆盖 java lang Object 中的方法 道理很简单 因为Object是所有ja
  • 避免额外的换行,写入 .txt 文件

    目前我正在使用java nio file File write Path Iterable Charset 写入txt文件 代码在这里 Path filePath Paths get d myFile txt List
  • node.js - 获取请求后,脚本不会返回到控制台

    这是一个简单的脚本 var http require http http get WEBSITE function res console log Does not return return if WEBSITE变量是 http goog
  • Xaxis-Tick 标签已经消失,用 pandas 绘制到子图上,但仍然存储

    使用嵌套在其他脚本中的复杂脚本pandas DataFrame plot and GridSpec在子图设置中 我遇到以下问题 当我创建 2 列 1 行网格规范时 刻度标签都是正确的 然而 当我创建 1 列 2 行 gridspec 时 一
  • Spring Boot中JMS消费者的动态扩展

    我正在尝试构建一个 spring boot 应用程序 它将从 activeMQ 生产者读取数据 我希望客户可用的资源达到最佳状态 在我的 spring boot 应用程序中 我想配置多个消费者 并且所有这些消费者将连接到一个队列 他们是我可
  • 从 .pub 格式的公钥创建 JSch HostKey 实例

    我正在尝试使用 JSch 将文件从 Windows 计算机发送到 Linux 计算机 因此 我将主机公钥从 Linux 计算机复制到我的 Windows 计算机 并将密钥添加到我的HostKeyRepository 但由于某种原因 我收到
  • 下载时限制带宽

    我有一个可以使用互联网连接来下载数据的应用程序 我在用着HttpURLConnection要做到这一点 Problem 我的应用程序会耗尽互联网带宽 因此用户在浏览器上浏览速度会很慢 我想让它们选择性地自行设置带宽限制 而不是像这个网站 我
  • 我可以删除下面的 flutter 代码中的 const 吗?

    更新到 flutter 2 5 后 默认代码中添加了 const 修饰符 并且有些地方不需要添加 const 那么添加 const 有什么区别呢 import package flutter material dart void main
  • 从批处理文件创建新的批处理文件

    是否可以从现有批处理文件创建新的批处理文件 例如 在 Java C 和几乎任何其他语言中 我可以运行一个 exe 并使用单独的代码创建另一个 exe 这可以在批处理文件中完成吗 假设我希望 test bat 是这样的 echo hello
  • 正确使用 Laravel 的分页方法?

    当我使用paginate方法具有以下语句 user User where id 1 gt first images user gt images gt paginate 3 我收到以下错误 方法 Illuminate Database El
  • 在 bash 中自动将最后一个命令的输出发送到文件?

    在 OSX 上使用 bash 如何设置 shell 以便它使用最近命令的输出覆盖某个文件 这对于查看 搜索 分析大型输出非常方便 而我没有先见之明可以通过管道传输到文件 谢谢您的帮助 Use script您的命令及其输出将存储在日志文件中
  • 使用张量板时,如何总结多个小批量计算的损失?

    我想使用 Tensorboard 来可视化验证样本中损失的演变 但验证集太大 无法在一个小批量中进行计算 因此 为了计算我的验证损失 我必须在覆盖验证集的多个小批量上多次调用 session run 然后我将每个小批量的损失 在Python
  • “无法映射用于编码 UTF-8 的字符”错误

    我在以下方法中遇到编译错误 public static boolean isValidPasswd String passwd String reg 0 9 a z A Z s 8 24 return Pattern matches reg
  • 包含 WEB-INF 中的 javascript 文件 [重复]

    这个问题在这里已经有答案了 我正在用struts开发一个网站 我的文件夹结构如下 现在 我有一个jsp页面register jsp 我想在其中添加jquery validate js文件 我已遵循以下链接的建议 无法在 JSP 中包含 WE
  • iPhone 上的 CSS 过滤器速度慢?

    我有一个带有这个 css 类的 div pos webkit filter brightness 0 5 moz filter britghtness 0 5 o filter brightness 0 5 ms filter bright
  • 将 A4 PDF 页面拆分为两个 A5,然后再拆分回来

    我有一个 A4 页的 PDF 出于打印原因 每页包含两张相同的 A5 页 我想要在我的 Java 程序中做的是拆分这些页面 并使用每个唯一的 A5 页面零到多次作为模板来添加 替换一些文本 完成此操作后 我想将 A5 页再次粘回 A4 页
  • 在 C++11/14 中按值返回局部变量是否会导致在不涉及复制/移动时由右值构造返回值?

    我知道在以下情况下 编译器可以自由地移动构造来自makeA 但也可以自由地删除副本或完全移动 struct A A A A A A makeA A localA return localA 我想知道编译器是否允许构造类型的对象A来自类型的本
  • Kubernetes 服务无法访问

    我在 2 个 Rasberry Pi 型号 3 和 3B 上创建了一个 Kubernetes 集群 用作 Kubernetes 游乐场 我已经部署了一个 postgresql 和一个 spring boot 应用程序 称为meal plan
  • 在 bash 脚本中查找文件夹名称的一部分

    尝试在文件夹结构中查找特定部分 但我在 bash 脚本中使用 RegEx 时遇到问题 此外 我的正则表达式说得不太流利 我需要知道我传递给 bash 脚本的文件夹 类型 根据当前所在的文件夹 类型 需要运行不同的操作 以下示例文件夹结构 h