2017-01-12 53 views
0

因此,我現在有的是將youtube-dl下載到這個文件夾「/ media/zachary/Ante'esemone /不在iTunes /中」,它會創建一個帶有頻道名稱的文件夾,例如:cd從父母的子目錄

  • Aliasizm
  • 大篷車宮
  • MrSuicideSheep

內。然後這些文件夾都標記爲.mp3文件:

  • 奧德 - Catharsis.mp3
  • 回聲 - 留下您的Lover.mp3
  • Hazey眼睛 - Untitled.mp3

所以我有一個腳本,將編輯的所有文件的ID3標籤1文件夾,此腳本將添加從中下載的頻道的名稱,並將文件名中的藝術家名稱添加到ID3標籤中。例如:

奧德 - Catharsis.mp3

變爲:

Catharsis.mp3(用 「以太」 的ID3標籤爲藝術家和 「Mrsuicidesheep」 爲評論)

但我目前腳本(我將在下面添加它)每次只能執行1個文件夾,我需要的是一次可以執行父文件夾中所有文件夾的命令(或編輯腳本)。

#!/bin/bash 
for f in *.mp3; do 
artist="$(printf "$f" | cut -d '-' -f 1 | sed 's/ *$//')" 
eyeD3 --artist "$artist" "$f" 
mv -nv "$f" "$(printf "$f" | cut -d'-' -f 2 | sed 's/^ *//')" 
done 

^將添加藝術家標籤和文件重命名爲只是跟蹤名稱

我對任何最初的混亂表示歉意。

+0

爲什麼不使用[lltag](http://home.gna.org/lltag/)? –

+0

這可能有助於解釋你正在嘗試做什麼。運行腳本的命令根本沒有意義...... –

+0

@ l'l l基本上我已經將youtube-dl從批處理文件下載到目錄中,並將它們下載到以該通道命名的文件夾中從「/ Caravan Palace/Caravan Palace - Lone Digger.mp3」和我試圖運行的腳本所做的是在「 - 」之前取出文件名的一部分,並將ID3標籤設置爲藝術家,然後從文件名中剪切。但是我已經讓youtube-dl將它們全部放在單獨的文件夾中,因爲我喜歡在文件中添加ID3註釋以指明它來自哪個頻道。 –

回答

0

試試這個?:

#!/bin/bash 
for f in */*.mp3; do 
    directory=${f//\/*/} 
    artist=$(printf "$f" | sed -e 's:[^/]*/::g' -e 's: - .*::g') 
    eyeD3 --artist "$artist" "$f" 
    mv -nv "$f" "$directory/${f//* - /}" 
done 

我刪除了printf | cut | sed,我不認爲他們是必要的,但隨意這樣做的。