[問題] 關於glob
又來問問題啦~~~這次是已經有找到檔案裡面的內容,
卻沒有辦法對內容作處理,我的表達能力不好,貼出程式碼看看比較好
這是我第一種寫法,
#!usr/bin/perl
chdir ("c:\\Perl\\csv");
@mutifile=glob("*.csv");
foreach(@mutifile)
{
open(FILE,$_);
@file=<FILE>;
print @file;
close(FILE);
}
open f,">c:\\test\\0710.txt";
foreach $FOUND_STAGE(@file)
{
if ($FOUND_STAGE=~/Stage_No/)
{
$flag=1 ;
@array=split/,/,$FOUND_STAGE;
$first = $array[2] if $array[1]=~/Stage_No/ ;
next ;
}
if ($FOUND_STAGE=~/^\s/){$flag=0 ; next; }
@array=split/,/,$FOUND_STAGE ;
next if $array[1]=~/Start_Date/;
print f "$array[1] $array[2] $array[5] $array[6]\n" if $flag==1 ;
}
close f;
後來我有用find試著寫
use File::Find;
find(\&wanted,'c:\\Perl\\csv',"c:\\Perl\\lib");
sub wanted{
if(/.csv/){
open(FILE,"$File::Find::name");
H:while(@file=<FILE>){
open f,">>c:\\test\\0711.txt";
foreach $cycle{
foreach $FOUND_STAGE(@file)
{
if ($FOUND_STAGE=~/Stage_No/)
{
$flag=1 ;
@array=split/,/,$FOUND_STAGE;
$first = $array[2] if $array[1]=~/Stage_No/ ;
next ;
}
if ($FOUND_STAGE=~/^\s/){$flag=0 ; next; }
@array=split/,/,$FOUND_STAGE ;
next if $array[1]=~/Start_Date/;
if ($flag==1){
print f "$array[1] $array[2] $array[5] $array[6]\n" ;
}
}
}
}
}
close f;
都一樣把資料放在@file
也都有讀到,我有print過
但是就是他只對一個檔案作處理
沒有辦法處理全部的
還有每個csv的檔案都有時間,要怎麼把他印在每個處理過後資料的開頭?
謝謝指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.65.55.161
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章