0

現時点で私が持っているのは、このフォルダー「/media/zachary/Ante'esemone/Not in iTunes/」に youtube-dl をダウンロードすることで、チャンネルの名前を持つフォルダーを作成します。次に例を示します。

  • エイリアス
  • キャラバン パレス
  • MrSuicideSheep

次に、これらのフォルダー内には、次のラベルが付けられた .mp3 ファイルがあります。

  • エーテル - カタルシス.mp3
  • エコーズ - 恋人を残して.mp3
  • ヘイジー・アイズ - 無題.mp3

そのため、一度に 1 つのフォルダー内のすべてのファイルの ID3 タグを編集するスクリプトがあります。このスクリプトは、ダウンロード元のチャンネルの名前を追加し、ファイル名からアーティスト名を ID3 タグにも追加します。 . 例えば:

エーテル - カタルシス.mp3

なります:

Catharsis.mp3 (アーティスト「Aether」、コメント「Mrsuicidesheep」の ID3 タグ付き)

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

^アーティストタグを追加し、ファイルの名前をトラック名に変更します

初歩的な混乱をお詫び申し上げます。

4

1 に答える 1

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不要と思われる箇所は削除しましたが、そのままで構いません。

于 2017-01-12T03:20:59.140 に答える