ファイルの削除

単純にファイルを削除したかった。その数が膨大であるのと個別の容量が大きいため、ひとつひとつ消していくのは手間なのでスクリプトで処理する。

シェルで書くとこんな感じ。

#!/bin/sh

for NUM in `seq -w 00 31`
do
  for TM in `seq -w 18020 20 18980`
  do
    \rm tmp_00${NUM}/result_${TM}
  done
done

同じことをPerlでもやろうとしたのだが、まだうまく動作しない(ファイルが消せない)。まだまだ道は険しそうだ。

use strict;
use warnings;

my $dirname = 'tmp_0000';
opendir(DIR, $dirname) or die "$dirname: $!";

while (my $dir = readdir(DIR)) {
	if ($dir =~ /^result_18[^0]/) {
		my $fname = $dir;
		print unlink($fname);
	}
	if ($dir =~ /^result_180[^0]/) {
		my $fname = $dir;
		print unlink($fname);
	}
}
closedir(DIR);