
20180122A0223AAA001.csv
20180122T0223AAA002.csv
20180122P0322AAA001.csv
20180122A0222DDD001.csv
20180122A0123CCC001.csv
上のようなファイルが複数存在する場合、ファイル名にAAAの記載があるファイルを検索。
そのファイルの10桁目からファイル名に記載されている日付のフォルダを作成。
そのフォルダ配下にAAAの記載があるファイルのみコピーを行う。
今回の場合は、AAAがファイル名に含まれるファイルの”ファイル名から”「0223」「0322」のフォルダを作成後、そのフォルダ配下に「20180122A0223AAA001.csv」「20180122T0223AAA002.csv」の二つのファイルを「0223」フォルダにコピー。「20180122P0322AAA001.csv」は「0322」フォルダにコピーを行う一連の処理をperlで書きたいと思います。よろしくお願いします。

No.2ベストアンサー
- 回答日時:
OSが不明なのでwindows前提です。
以下のようにしてください。
------------------------
use strict;
my $datadir = "d:\\goo\\perl\\goo3";
chdir($datadir) or die("chdir error:$!");
opendir(DIRH, ".") or die("opendir error:$!");
my @files = readdir(DIRH);
closedir(DIRH);
@files = grep(/^\d{8}\w\d{4}AAA\d{3}\.csv$/i,@files);
my $ctr = 0;
foreach my $fname (@files){
my $sdir = substr($fname,9,4);
-d $sdir or mkdir($sdir,0777) or die("mkdir error:$!");
my $newname = $sdir . "\\" . $fname;
rename($fname,$newname) or die("rename error:$!");
$ctr++;
}
printf("%d files moved!!\n",$ctr);
-------------------------------------
my $datadirはこれらのファイルを格納しているフォルダです。あなたの環境にあわせて適切に設定して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCSVファイルを途中行まで...
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
ReadLineでの読み出し行を指定する
-
対比較データを表データに変換
-
エクセルマクロについて CSVフ...
-
Windowsで複数のファイルを同じ...
-
MATLABのm-fileについて
-
readdir()で得られるファイル・...
-
dos変数の%~dp0は powershellで...
-
MATLAB std::exceptionエラー
-
batファイルでrenameができませ...
-
重複するデータを抽出できる秀...
-
LWPでPOST送信した後に送信先に...
-
Perlでファイルの末尾から指定...
-
htaccessで特定のディレクトリ...
-
C言語で特定の行を抽出する方法...
-
FindFirstFileとFindNextFileで...
-
ファイルの削除について
-
sprintfについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
ReadLineでの読み出し行を指定する
-
VBAで巨大なファイルの途中から...
-
VB6.0でDB接続する際に切断時の...
-
MATLAB グローバル変数の宣言
-
openした後、closeしないでプロ...
-
CSVが可変長の場合の検索方法
-
データファイルの行を削除する
-
5行おきに5行ずつ抽出するに...
-
データファイルをプロットする(...
-
Perlの変数に文字数制限(容量...
-
拡張子 ”log” と ” dat” の違い
-
【VBA】複数のエクセルファイル...
-
JavaでCSVファイルを高速に読む...
-
CGI(Perl)でWeb上から作成...
-
検索ボックスから製品名を検索...
-
CSVファイルの内容を編集する方...
-
ADOによるCSVファイルからのデ...
おすすめ情報
書きたいと思っていますが書けていません。努力、才能が足りないと言われればそうかもしれませんが教えてもらえるとありがたいです。教えてください。よろしくお願います。