ディレクトリ配下のファイル名を置換するperlスクリプト

Pocket

MACからubuntuにzipファイルをアップロードした。そのzipファイルをubuntu上で、unzipしたところ、
__MACOSというフォルダが作成された。そして、そのディレクトリ配下に、ファイルがあるのだが、なぜか、ファイル名のあたまに、”._”が付与され、「._ファイル名」というファイル名になっていた。

アップロードしたファイル名は、合計で、200近くあったので、mvコマンドで一つ一つファイル名を直すのは面倒と思い、久しぶりにperlのスクリプトをかくことにした。以下内容をメモ。

目標は、”._aaaa”となっているファイル名を”aaaa”のファイル名に置換

コードは以下のとおり、ディレクトリと、ファイルのglobのマッチの書き方は自分の環境にあわせて修正が必要。

#!/usr/bin/perl

use strict;
use warnings;

my $dir = "/***/***/";
#(ファイル名を変更したいファイルのあるディレクトリを指定)

chdir $dir or die "失敗* $!";
my @all_files = glob "._*";
#今回は._からはじめるファイル名を変更したいので、globのファイルマッチを上記の通り記載。

my $item;
foreach $item (@all_files){
	 my $oldfile = $item;
         $item =~ s/\._//g;
         my $newfile = $item;
	 rename ($oldfile,$newfile);
}

ファイル名はhenko.plとして、後はシェルで、以下を叩けば完了。

$perl henko.pl

コメントを残す