【问题标题】:Linux command line - grabbing parts of the file pathLinux 命令行 - 获取部分文件路径
【发布时间】:2013-10-19 14:15:00
【问题描述】:

我正在尝试将我的所有 WAV 文件转换为 FLAC 文件,以使我的 FLAC 音乐目录与我的 WAV 音乐目录相同。

目前我已经建立了我的音乐档案,这样一张典型的专辑就在这里:

/directory1/directory2/directory3/Music/WAV/艺术家/专辑

因此,我希望我的 FLAC 文件具有一对一的对应关系,如下所示:

/directory1/directory2/directory3/Music/FLAC/艺术家/专辑。

我知道我将不得不使用find 列出所有目录/子目录,如下所示:

find -type d -exec commands.sh

但是我怎么写commands.sh文件,这样它会抓取WAV目录下的Artist/Album部分路径,mkdirFLAC目录下同/Artist/Album,然后输出flacs到 FLAC/Artist/Album 目录?

我知道将flacs转换为您选择的输出目录的命令是:

flac -5 --out-prefix="/desired/output/path" *.wav

所以我想我只是在抓取/重新创建文件路径时遇到了麻烦!

【问题讨论】:

    标签: linux audio terminal


    【解决方案1】:

    这在 ruby​​、perl 或 python 等脚本语言中会容易得多。像这样的东西在任何这些语言中都是一个相当简单的入门项目。有一些用于查找和路径操作的库可以做到这一点 一切都很简单。

    但是,有两个 posix 实用程序可以帮助拆分路径名。目录名和基本名。我认为这两个和 sed 应该让你做 你想要什么。

    Find 将始终返回相对路径,并且默认情况下任何 exec 都出现在目标目录中,如果这不是您想要在手册页中查看的内容。您可以强制 find 保留在顶级目录中。

    【讨论】:

      猜你喜欢
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      相关资源
      最近更新 更多