したがって、次のような命名規則を持つディレクトリ内のすべての .mp3 ファイルを検索する必要がある割り当てに問題があります。
Beatles - Lucy in the Sky with Diamonds.mp3
次に、それを次のような形式にする必要があります。
Beatles/Lucy in the Sky with Diamonds.mp3
私は UNIX の初心者ですが、基本的な概念はよく理解しています。
ファイル名から拡張子を「取り除く」方法を知っています (つまり、「Beatles - Lucy in the Sky with Diamonds」が残されます)。
また、ディレクトリ内のすべてのファイルを検索する方法も知っています。
しかし、「-」を検索する方法に慣れていません。
C++ などでは、特定の char ("-") を検索してその int を取得し、部分文字列を作成できることは知っていますが、UNIX ではそのような関数を知りません。
質問に完全に答える完全なコードを探しているわけではありませんが、char を検索してファイル名を編集する方法を知りたいです。
ありがとう。
編集:
nosid が言ったことを使用して、次のようにファイル名をアーティストと曲のタイトルに分割することができました。
artist="${originalFile%% - *}"
song="${originalFile#* - }"
その部分は機能し、プロパティを分離しますが、ファイルを移動しようとすると新しい問題が発生します。ディレクトリが存在するかどうかを検出する2つのifステートメントがあり、存在しない場合はそのディレクトリを作成します。ただし、ディレクトリ名にアーティスト変数を使用すると、2 つのディレクトリが作成されます。曲の使い方も同様です。
基本的に、次のように mkdir または mv を試したときに、ファイル/ディレクトリ名でスペースが無視されるようにするにはどうすればよいですか。
mkdir ${artist};
mv ${artist}/${song};