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

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

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

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

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

[perl]
#!/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);
}
[/perl]
ファイル名はhenko.plとして、後はシェルで、以下を叩けば完了。
[bash]
$perl henko.pl
[/bash]


Posted

in

, , ,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *