2017-01-12 38 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,我不认为他们是必要的,但随意这样做的。