テキストファイルとタブとExcel

前回まででふれたように、
dir /b *.mp3 > list.txt
によって、例えば、

01 トラック 1.mp3
02 トラック 2.mp3
03 トラック 3.mp3

といった内容のテキストファイル「list.txt」ができますが、
その各行を、

ren "01 トラック 1.mp3" track01.mp3
ren "02 トラック 2.mp3" track02.mp3
ren "03 トラック 3.mp3" track03.mp3

といったように一括して書き換える方法について考えます。

すなわち、
ファイル名の前には「ren」
ファイル名の後には、コンパクトで重複のない、かつ元の規則性や順序を反映した数字の付された新しいファイル名、
が入るようにしたいわけです。
(さらに元のファイル名が半角スペースを含む場合には二重引用符「"」で囲む必要があります。)

最終的には、「正規表現のキャプチャ」をつかえるテキストエディタ(Emacsなど)でこの作業を行うわけですが、
参考までに、あえてWindows 標準の「メモ帳」とExcel でやってしまう方法を以下に記します。

「メモ帳」とExcel の間で互いにコピーペーストすると行は行に対応します。
(Excel にコピーする際は各セルへの入力が始まった状態ではなく、各セルをシングルクリックして軽く選択した状態で貼り付けます。)
ここまでは十分に予想できることですが、注目すべきなのは「タブ」の存在です。

Excel の複数の行や列を選択した状態でコピーして、テキストファイルに貼り付けてみると列と列の間にスペースのようでスペースでない長い空白部分があるはずです。
これが「タブ」で、主にインデント(字下げ)につかわれるものですが、
テキストの本文ではTabキーで入力できるのに、検索や置換の窓の部分には本文からコピーペーストしないと入力できない、などなかなか謎に満ちた存在です。
逆にテキストファイルで各行を「タブ」で分けておいて Excel に貼り付けると列に分かれます。

とりあえずやってみましょう。
MP3ファイルの一覧になっている「list.txt」をメモ帳で開いて、すべて選択してコピーします。
Excel を起動して、C1のセルを軽くクリックした状態で貼り付けます。
順序通りになっていなければ昇順で並び替えます。
続いて、
Aの列には「ren」
BとDの列には「"(二重引用符)」
を入力してオートフィルでファイル数の分だけ埋めていきます。
E1には新しいファイル名としてとりあえず「track01」と入れてオートフィルで「track02」「track03」のように連番にします。
F1には「.mp3」と入れてこちらはCtrlキーを押しながら(押さないとmp4、mp5と増えていってしまいます)オートフィルで埋めていきます。
各行各列が埋まったら、AからFまでの列を選択してコピーし、メモ帳に貼り付けます。

これを置換していきますが順序が重要です。

まず、「メモ帳」の置換「検索する文字列」に、本文の「ren」から最初の「"(二重引用符)」の部分をコピーペーストで入力し、「置換後の文字列」にも同じものを貼り付けた後タブの部分を半角スペースに変えてから「すべて置換」を実行します。
次に、「検索する文字列」に二番目の「"(二重引用符)」から「track」までの部分をコピーペーストで入力し、「置換後の文字列」にも同じものを貼り付けた後タブの部分を半角スペースに変えてから「すべて置換」を実行します。
最後に、「検索する文字列」に「タブ」のみを入れた状態で、「置換後の文字列」を空欄にした状態で「すべて置換」を実行し、本文からすべてのタブを消します。

これで出来上がった内容をコピーして、(該当するフォルダをカレントディレクトリとする)コマンドウィンドウに貼り付ければファイル名を一度に変えられるはずです。
もちろん仮に「track」とした部分は、もともとのファイル名が「track」ではじまっていたりする場合などには、適宜「CD1_track」「CD2_track」などと読みかえてやってみてください。

この記事が気に入ったらサポートをしてみませんか?