2013-10-19 20 views
0

我正在試圖將我所有的WAV文件轉換爲FLAC文件,以使我的FLAC音樂目錄與我的WAV音樂目錄完全相同。Linux命令行 - 抓取文件路徑的一部分

在我有我的音樂檔案建立的那一刻,這樣一個典型的專輯是在這裏:

/directory1中/ directory2/directory3目錄/音樂/ WAV /藝術家/專輯

,所以我會就像我的FLAC文件的一對一對應關係,如下所示:

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

我知道,我將不得不使用find列出所有的目錄/子目錄如下:

find -type d -exec commands.sh

但是我怎麼寫commands.sh文件,從而會搶的了Artist/Album部分路徑在WAV目錄中,mkdir與FLAC目錄中的Artist/Album相同,然後將FLAC輸出到FLAC/Artist/Album目錄?

我知道命令FLACS轉換成您所選擇的輸出目錄爲:

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

所以我想我只是具有斂/重新創建該文件路徑的麻煩!

回答

0

這對於像ruby,perl或python這樣的腳本語言來說會更容易一些。像這樣的東西是任何這些語言都相當簡單的啓動項目。有用於查找和路徑操作的庫,這使得這個 都非常容易。

但是,有兩個posix工具可以幫助拆分路徑名。 dirname和basename。我認爲這兩個和sed應該讓你做你想要的 。

默認情況下,查找將始終返回相對路徑,並且任何exec都會出現在目標的目錄中,如果這不是您想要查看的手冊頁。您可以強制find找到頂層目錄。