複数のzipファイルからあるファイル名のファイルだけをまとめて取り出すスクリプト

コマンドスクリプト集トップへ




概要

複数あるzipファイルの中から指定したパターンを持ったファイル名だけを全てのzipの中から展開(extract)するスクリプトです。例えば、001.zip, 002.zip, 003.zip, 004.zip, 005.zipがあるとします。それらには*.wmv, *.txt, *.jpg等がアーカイブされているとします。このコマンド一つで.wmvファイルだけ、.txtファイルだけ、または.jpgファイルだけをこのスクリプトで取り出すことができます。

条件

  1. Perl 5.6が必用です。
  2. PerlのPackage, Archive::Zipが必用です。

コマンドの使い方

 getfilesfromzips.pl

zipファイルがあるディレクトリ(フォルダ)、ファイル名のパターンはスクリプト内部で変数指定するようになっていますのでコマンドラインでの引数やオプションはありません。これは単純にスクリプトをシンプルにしたためです。

同じファイル名が別なzipファイルから取り出された場合は、後から取り出されたファイルが前のファイルを上書きします。

設定

スクリプト内の以下の場所を実際の環境に合わせて変更してください。

 my $ext = '\.wmv$';
 my $dir = ".";
 my $zippattern = '.*\.zip$';

この例では、カレントディレクトリ(カレントフォルダ)内の全ての.zipファイルから.wmvの拡張子を持つファイルを展開(extract)します。$extと$zippatternは正規表現で指定します。

スクリプトダウンロード

以下のリンクのテキストファイルをダウンロードし、名前をgetfilesfromzips.plとしてください。一行目のPerlのパスは適切に変更してください。

getfilesfromzips.pl