ファイル名を正規表現で一括変換したい時ってたまにあります。
* 提供されたファイルの名称がおかしい
* iOSのプロジェクトに入れるファイル名に変換したい(@2xとかしたい)
perlのワンライナーで一括変換できます。
```perl
`gutter:false;
perl -e 'for(glob("*")){$old=$_;s/HOGE/FOO/;rename($old,$_);}'
```
カレントディレクトリの全てのファイルに対して
s/HOGE/FOO/をした結果に置き換えます。
glob()の中はグロブでファイルを指定可能です。
".png"ならカレントディレクトリのピングファイルが対象になります。
注意点としては、置き換えの中に@があったらエスケープが必要です。
s/hogehoge/foo\@2x/
あと、一応バックアップを取ってからやりましょう。
### 後方参照を使って置き換える
123jpg とドットをつけ忘れてしまったファイルを123.jpgに変換したいような時は...
```perl
`gutter:false;
perl -e 'for(glob("*jpg")){$old=$_;s/([0-9]+)jpg/$1\.jpg/;rename($old, $_);}'
```
括弧で囲って$1, $2...で置き換えます。
0 件のコメント :
コメントを投稿