先日、複数ファイルのリネームに手こずりました。

ファイル名の前から2文字を消すという一見単純なリネームについてのお話です。

--目次-----
無料のリネームソフトを探して悪戦苦闘したお話
ターミナルを使った初心者でもできる方法を聞いたよ!
おまけ:macOS仕様の複数ファイル一括リネームの仕方

無料のリネームソフトを探して悪戦苦闘したお話

macには標準でリネーム機能があるんだけど、「前(後ろ)から何文字削除」がない。

愛用していた高機能リネームソフトShupapanは、自身のmacのOSをEl capitanにアップグレードしてから落ちるようになり、使えない。

(検索したところ、実行と同時に落ちるという話は共通してるのだけど、ソフトが落ちた後ファイルを見たらちゃんとリネーム完了されてるって人もいた。私はリネームされないでただ落ちる。)

素人らしく、リネームソフトを探したりしてみたのだけど、時間だけが浪費するばかり。

有料リネームソフトは良さげなものたくさんあったのだけど、正直、「ファイル名の前から2文字を削除する」って機能としてはとても簡単じゃないの!?って思ってしまう私は、これのためだけに有料ソフトを買うのは嫌で嫌で・・・。

で、次に考えたのが、ターミナルを使ってできないものなのか、ということ。

といっても、ちょっと調べてすぐ出てこなかったので、これは時間かかりそうだということで、SEのNia氏に相談することに。

Yuki
もうかれこれ1時間くらい浪費してるんですが、
ターミナルでリネームできますか?
Nia
そら、できるでしょ。
1時間も浪費とか馬鹿なの?
Yuki
・・・・・

ターミナルを使った初心者でもできる方法を聞いたよ!

気を取り直して、ターミナルを起動しよう。

Nia氏のような慣れてる人にはわからないかもしれないけれど、
ターミナルの真っ黒い画面がこわいのは私だけではないはず。

以下は、Nia氏がおしえてくれたものなので、感謝しながら書いていくよ!ちなみにしっかりと仕組みも教えてもらったけど、ただコピペしたらいいように簡略的にしてるので、ご了承ください。


フォルダの移動

まずは、リネームしたいファイルがあるフォルダにターミナル上で移動するよ!

cd フォルダパス

と、打って、enterを押すと移動する。

フォルダパスの作り方


  • 指定したいフォルダを「右クリック+optionキー」で「〜のパスをコピー」という表示がでてくる
  • 指定したいフォルダをターミナルにドラッグ・アンド・ドロップ !簡単!


頭から二文字消す方法


for file in *; do mv $file $(echo $file | sed -e 's/^..//'); done

これを打って、エンター!!!!
そのフォルダ全てのファイルがリネームされるから気をつけてね…!

もし、一度試してみたいな、って人は、この下の文字列を打つといいよ。
mvがechoに変わってるだけだけど、echoはターミナル上で吐き出すだけだから、これで確認して大丈夫だったら、上記のものをうつといいかな。

for file in *; do echo $file $(echo $file | sed -e 's/^..//'); done

おまけ

頭から3文字消去:「's/^..//'」の「.」を3つに増やす
後ろから2文字消去:「's/^..//'」の「^..」を「..$」にしよう

ただその場合、doneを打つと実行ってなって始まっちゃうから、done以前までをコピペして、ターミナル上で.を増やすといいかな。そのあと自分でdoneを打てば始まる。

自分用メモ

sed 文字列を置換したり、特定の行を抜き出せる
書き方:echo $変数名 | sed -e 条件
置換の場合:echo $変数名 | sed -e s/置換条件/置き換え条件/

for ループ
. 任意の1文字
^ 文字列の最初
$ 文字列の最後

もう少し詳しく知りたいなーって時は、bashとかshellとかで検索するといっぱい出てくるので、参考にしてみてください。

おまけ:macOS仕様の複数ファイル一括リネームの仕方

複数のファイルを選択した後、finderなどで右クリックをするだけ。

リネーム01

以下のようなリネームができるので、基本的には標準でかなり大丈夫。

スクリーンショット 2016 07 28 0 38 37

スクリーンショット 2016 07 28 0 38 57

スクリーンショット 2016 07 28 0 39 34

ここ数年?の実装のため、意外と標準を知らずに、重いリネームソフトを使ってる人もいるみたいなので、紹介してみました。

それにしても、いつかもっとちゃんとコードかけるようにならないといけない世界がやってきそうだな、、、と。最近びくびくしている、なんだかんだでアナログ人間なゆきでした。

Yuki
ねえねえ、今回吹き出しができたよ!みてみて!
Nia
俺、ひどい人みたい。
.......
Yuki
多分言ってたし。
でも、いつもありがとう!!!!!!!!!