繁体   English   中英

Linux命令行-抓取文件路径的一部分

[英]Linux command line - grabbing parts of the file path

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

目前,我已经建立了音乐档案,因此可以在其中找到一张典型的专辑:

/ directory1 / directory2 / directory3 / Music / WAV / Artist / Album

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

/ directory1 / directory2 / directory3 / Music / FLAC / Artist / Album。

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

find -type d -exec commands.sh

但是,我该如何编写commands.sh文件,以使其能够捕获WAV目录中路径的Artist/Album部分, mkdir与FLAC目录中的相同/ Artist / Album,然后将flas输出至FLAC / Artist /专辑目录?

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

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

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

使用像ruby,perl或python这样的脚本语言,这会容易得多。 用任何一种语言,这样的事情都是一个相当简单的入门项目。 有一些用于查找和路径操作的库,使这些工作变得非常容易。

但是,有两个posix实用程序可帮助拆分路径名。 目录名和基名。 我认为这两个和sed应该可以让您做自己想做的事。

如果不是您希望在手册页中查找的内容,Find将始终返回相对路径,并且默认情况下,目标目录中会出现任何exec。 您可以强制find停留在顶层目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM