複数のファイル名をリスト(csv・xlsx・スプレッドシート)で一括で変更したいと思うことが増えたので方法を調べました。
ちなみに使用するPCはMacです。
有用そうなのはこの3つ
__1. 「Renamer」(リネームアプリ)を使う
- 「Automator」を使う
- 「ターミナル」を使う__
1.「Renamer」を使う
Renamer
mac用の有料アプリ。ざっと調べただけですがcsvでの一括変換に対応してた。
リネームソフトいっぱいあると思うので、調べたら他にもあるかもしれません。
日本語非対応、有料(2638円くらい)、試用期間15日。
開くとこんな感じ。
Find and Replace > Rename from Spreadsheet
で、Choose Flie でcsvファイルを選択します。
きちんと読み込めていれば、こんな感じで current name と new が確認できます。
英数字->かな、英数字->英数字、かな->かな
全部多分いける。
記号や半角スペースもいけます!すごい!
が、こんな感じの原因不明のエラーが出ることがあって、いろいろ検証してみたんですが結局わからなかったのであきらめました。
元ファイルがみつからないとか、new nameが指定されてないときに出るエラーのはずなんですが原因不明。
でもこれが起きなければ、一番強力な一括変換方法だと思います!有料だけど。
2.「Automator」を使う
【参考】CSVから一括でファイル名を変更するMacアプリを作った
Gitに記載あるように__英数字、スペース不可__です。
英数字やスペースの入ってないファイルならこちらで配布していただいてるアプリが一番簡単だし手順が少ないかも。
かなの含まれるファイル名にしようとするとぐちゃぐちゃになって使えません。
3.「ターミナル」を使う
上記の記事で採用されなかった方法で結局やりました。
【参考】Macでファイル名変更リストを作成して、ターミナルから大量ファイルを一発でリネームする方法!
ファイル名にかなが含まれている場合は、ターミナルにめちゃくちゃ抵抗ないならこの方法が一番トラブルなさそう。
…が、それでもいくつかトラブルあったのでこちらにメモしておきます。
ちなみに、スペースが入ってるとうまくいきません。
手順
① スプレッドシートでリストを作る。
こんなのつくりました。
もし使えそうだったらコピーしてつかってください。
参考:【Mac】Finderでフォルダ内のファイル名一覧を取得する方法
② コマンドだけをテキストエディタに貼り付ける(VScodeつかいました)
③ シェルスクリプト(.sh)として保存し、名前を変更したいファイルが入ったフォルダの中に入れる
④ ターミナルで上記フォルダに移動し、シェルスクリプトを実行
$ cd [該当フォルダをターミナル上にドロップアウトすると楽]
$ sh re-name.sh
詳しい手順は元記事を参照してください!
なんか末尾に「?」がはいる
解決方法
改行コード「CRLF」になってると一括で名前変えた時に「?」がついちゃうみたい。改行文字で変になるっぽい。(だから一番末行には?がついてない)
VScodeだと、「CRLF」って書いてあるところクリックすると変更できます。
【参考】改行コードの種類の「CR」「LF」「CRLF」の意味と違い
なんか1つ目のファイル(1行目)だけ変更できない
re-name.sh: line 1: mv: command not found
こんなエラーがでる。
解決方法
新規で作ってコピペで保存しなおす。
エクセルからコピペしたりcsvから開いたりすると行頭にBOMっていうのが入っちゃうことがあるっぽい。
↓こういう表示になってるとBOMがついてて失敗する
VScodeにはエンコード付きで開き直す機能があるんですが、それだとうまくいかないので新規ファイル作ってコピペしなおしましょう。
で、BOMのついてないUTF-8に保存しなおせば解決!
なんだ〜!??!BOM〜〜〜💣
ライバーやってると、Indesgnで画像をたくさん作ったりする機会が割とあって(ネップリとか人ごとに作ったり)、でもIndesignってスプレッドに名前つけられないので…。修正して書き出すたびに名前をつけ直すのがしんどすぎたので…。
人の名前のついたファイルとか作るときに手打ちだとミスりやすいし、英数表記だと、英語っぽい名前の人の場合綴りがわかんないことが多いのでかなで名前を一括変換したかった!!!できた!!!
あとネップリの場合は特に、コンビニで印刷時、一応サムネが小さく表示されると思うけど、ライバーさんの名前も併記されてたほうがわかりやすいと思うので…。
今後はこれで時短していきます!🥳