[英]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.