【Mac】csv（スプレッドシート）で一括ファイル名変更

複数のファイル名をリスト（csv・xlsx・スプレッドシート）で一括で変更したいと思うことが増えたので方法を調べました。
ちなみに使用するPCはMacです。

有用そうなのはこの3つ

__1. 「Renamer」（リネームアプリ）を使う
1. 「Automator」を使う
1. 「ターミナル」を使う__



# 1.「Renamer」を使う
[Renamer](https://renamer.com/)
mac用の有料アプリ。ざっと調べただけですがcsvでの一括変換に対応してた。
リネームソフトいっぱいあると思うので、調べたら他にもあるかもしれません。
__日本語非対応、有料（2638円くらい）、試用期間15日。__

開くとこんな感じ。

![スクリーンショット 2022-01-08 14.02.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657354/9dff063f-b81f-4309-1dd5-36e20463b616.png)

Find and Replace > Rename from Spreadsheet
で、Choose Flie でcsvファイルを選択します。
きちんと読み込めていれば、こんな感じで current name と new が確認できます。
![スクリーンショット 2022-01-08 14.07.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657354/ff690c7a-e70d-c8a5-5843-633b8d7801ff.png)

__英数字->かな、英数字->英数字、かな->かな
全部多分いける。
記号や半角スペースもいけます！すごい！__

![スクリーンショット 2022-01-08 14.22.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657354/c6df5487-1fae-961e-43a9-49d693cc2691.png)

が、こんな感じの原因不明のエラーが出ることがあって、いろいろ検証してみたんですが結局わからなかったのであきらめました。
元ファイルがみつからないとか、new nameが指定されてないときに出るエラーのはずなんですが原因不明。
でもこれが起きなければ、一番強力な一括変換方法だと思います！有料だけど。

# 2.「Automator」を使う

【参考】[CSVから一括でファイル名を変更するMacアプリを作った](https://qiita.com/tippy/items/6e7dfaefea0fbce9f3e8)

Gitに記載あるように__英数字、スペース不可__です。
英数字やスペースの入ってないファイルならこちらで配布していただいてるアプリが一番簡単だし手順が少ないかも。
かなの含まれるファイル名にしようとするとぐちゃぐちゃになって使えません。

# 3.「ターミナル」を使う

[上記の記事](https://qiita.com/tippy/items/6e7dfaefea0fbce9f3e8)で採用されなかった方法で結局やりました。

【参考】[Macでファイル名変更リストを作成して、ターミナルから大量ファイルを一発でリネームする方法！](https://kazuki-mizuc.com/mac-terminal-rename-list/)

ファイル名にかなが含まれている場合は、ターミナルにめちゃくちゃ抵抗ないならこの方法が一番トラブルなさそう。

…が、それでもいくつかトラブルあったのでこちらにメモしておきます。
ちなみに、__スペースが入ってるとうまくいきません。__

## 手順
__① スプレッドシートでリストを作る。__
[こんなの](https://docs.google.com/spreadsheets/d/19Po28GIs8oOcq2dA_h_HgUCJOFy1wvgiBpUmgysdXP4/edit?usp=sharing)つくりました。
もし使えそうだったらコピーしてつかってください。
参考：[【Mac】Finderでフォルダ内のファイル名一覧を取得する方法]()

__② コマンドだけをテキストエディタに貼り付ける（VScodeつかいました）
③ シェルスクリプト（.sh）として保存し、名前を変更したいファイルが入ったフォルダの中に入れる
④ ターミナルで上記フォルダに移動し、シェルスクリプトを実行__

``` 
$ cd [該当フォルダをターミナル上にドロップアウトすると楽] 
$ sh re-name.sh
```

詳しい手順は[元記事](https://kazuki-mizuc.com/mac-terminal-rename-list/)を参照してください！


## なんか末尾に「?」がはいる

![スクリーンショット 2022-01-08 15.33.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657354/cca8ec20-8cb8-76a1-f3c1-1e623a424f8a.png)

### 解決方法

__改行コードを CRLF から  LF　に変更する。__
![スクリーンショット 2022-01-08 15.34.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657354/c4bf5895-49cd-8edb-c248-34d4b84c9799.png)
↓
![スクリーンショット 2022-01-08 15.38.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657354/4ae5f57e-93c6-8e80-d78d-7a00be633368.png)

改行コード「CRLF」になってると一括で名前変えた時に「?」がついちゃうみたい。改行文字で変になるっぽい。（だから一番末行には?がついてない）

VScodeだと、「CRLF」って書いてあるところクリックすると変更できます。

【参考】[改行コードの種類の「CR」「LF」「CRLF」の意味と違い](https://cprogram.net/line-feed-code/)

## なんか1つ目のファイル（1行目）だけ変更できない

```
re-name.sh: line 1: ﻿mv: command not found
```

こんなエラーがでる。

### 解決方法
__新規で作ってコピペで保存しなおす。__

エクセルからコピペしたりcsvから開いたりすると行頭にBOMっていうのが入っちゃうことがあるっぽい。
↓こういう表示になってるとBOMがついてて失敗する
![スクリーンショット 2022-01-08 15.44.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657354/1f2c5159-e8d7-87f4-33fe-db7277bb2129.png)
VScodeにはエンコード付きで開き直す機能があるんですが、それだとうまくいかないので新規ファイル作ってコピペしなおしましょう。
で、BOMのついてないUTF-8に保存しなおせば解決！

なんだ〜！？？！BOM〜〜〜💣


---

ライバーやってると、Indesgnで画像をたくさん作ったりする機会が割とあって（ネップリとか人ごとに作ったり）、でもIndesignってスプレッドに名前つけられないので…。修正して書き出すたびに名前をつけ直すのがしんどすぎたので…。

人の名前のついたファイルとか作るときに手打ちだとミスりやすいし、英数表記だと、英語っぽい名前の人の場合綴りがわかんないことが多いのでかなで名前を一括変換したかった！！！できた！！！

あとネップリの場合は特に、コンビニで印刷時、一応サムネが小さく表示されると思うけど、ライバーさんの名前も併記されてたほうがわかりやすいと思うので…。

今後はこれで時短していきます！🥳