2017-01-12 2 views
0

私は現在、このフォルダ "/ media/zachary/Ante'esemone/Not in iTunes /"にyoutube-dlをダウンロードし、チャンネルの名前を持つフォルダを作成します。例えば:親からのサブディレクトリにcd

:これらのフォルダ内のその後

  • Aliasizm
  • キャラバン宮殿
  • MrSuicideSheep

はとラベルの.mp3ファイルであります

  • オード - Catharsis.mp3
  • エコー - だから私は、内のすべてのファイルのID3タグを編集するスクリプトを持って

Untitled.mp3 -

  • Hazey目あなたのLover.mp3を残します1フォルダーで、このスクリプトは、ダウンロードしたチャンネルの名前を追加し、ファイル名からアーティスト名をID3タグに追加します。例えば:

    オード - Catharsis.mp3

    は、次のようになります(アーティストとコメントとして "Mrsuicidesheep" として "オード" のID3タグ付き)

    Catharsis.mp3

    しかし、私の現在スクリプト(私は下に追加します)は、一度に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を削除しました。

    関連する問題