亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5125 | 回復(fù): 11
打印 上一主題 下一主題

Perl腳本下載文件重命名問題``` [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-09-09 17:03 |只看該作者 |倒序瀏覽
因為工作需要,使用一個perl腳本,下載noaa的氣象數(shù)據(jù),但應(yīng)用中需要將文件更名為時間、層序和元素命名的文件,由于以前沒有接觸過perl,求助各位大大!
具體代碼如下:
if ($action ne 'data' && $action ne 'inv') {
   print "action must be inv or data, not $action\n";
   exit(;
}

if ($YYYY < 2006 || $YYYY > 2030) {
   print "bad date (year) code $time\n";
   exit(;
}
if ($MM < 1 || $MM > 12) {
   print "bad date (month) code $time\n";
   exit(;
}
if ($DD < 1 || $DD > 31) {
   print "bad date (day) code $time\n";
   exit(;
}
if ($HH < 0 || $HH > 23) {
   print "bad date (hour) code $time\n";
   exit(;
}
if ($hr0 == $hr1) {
   $dhr = 3;
}

if ($dhr != 3 && $dhr != 6 && $dhr != 12 && $dhr != 24) {
   print "dhr must be 3, 6, 12 or 24, not $dhr\n";
   exit(;
}

if ($hr0 > $hr1) {
   print "hr0 needs to be <= hr1\n";
   exit(;
}
if ($dhr <= 0) {
   print "dhr needs to be > 0\n";
   exit(;
}
if (! -d $OUTDIR && $action ne 'inv') {
   print "Directory $OUTDIR does not exist\n";
   exit(;
}

$VARS =~ tr/:_/| /;
if( $VARS =~ m/ALL/ig ) { $VARS = "."; }
else { $VARS = "$VARS):"; }

$LEVS =~ tr/:_/| /;
if( $LEVS =~ m/ALL/ig ) { $LEVS = "."; }
else { $LEVS = "$LEVS)" ; }

$URL =~ s/\$YYYY/$YYYY/g;
$URL =~ s/\${YYYY}/$YYYY/g;
$URL =~ s/\$MM/$MM/g;
$URL =~ s/\${MM}/$MM/g;
$URL =~ s/\$DD/$DD/g;
$URL =~ s/\${DD}/$DD/g;
$URL =~ s/\$HH/$HH/g;
$URL =~ s/\${HH}/$HH/g;

$output = '';

$fhr=$hr0;
while ($fhr <= $hr1) {
   if ($fhr <= 9) { $fhr="0$fhr"; }
   $fhr3=$fhr;
   if ($fhr <= 99) { $fhr3="0$fhr"; }
   $url = $URL;
   $url =~ s/\$FHR3/$fhr3/g;
   $url =~ s/\${FHR3}/$fhr3/g;
   $url =~ s/\$FHR/$fhr/g;
   $url =~ s/\${FHR}/$fhr/g;
   $file = $url;
   $file =~ s/^.*\///;

   #
   # read the inventory
   #    $line[] = wgrib inventory,  $start[] = start of record (column two of $line[])
   #

   if ($windows eq 'yes') {
      $err = system("$curl -f -s $url$inv -o $OUTDIR/$file.tmp";
      $err = $err >> 8;
      if ($err) {
         print STDERR "error code=$err,  problem reading $url$inv\n";
         sleep(10);
         exit(;
      }
      open (In, "$OUTDIR/$file.tmp";
   }
   else {
      open (In, "$curl -f -s $url$inv |";
   }

   $n=0;
   while (<In> {
      chomp;
      $line[$n] = $_;
      s/^[^:]*://;
      s/:.*//;
      $start[$n] = $_;
      $n++;
   }
   close(In);
   if ($n == 0) {
       print STDERR "roblem reading file $url$inv\n";
       sleep(10);
       exit(8);
   }

   #
   # find end of record: $last[]
   #

   $lastnum = $start[$n-1];
   for ($i = 0; $i < $n; $i++) {
      $num = $start[$i];
      if ($num < $lastnum) {
         $j = $i + 1;
         while ($start[$j] == $num) { $j++; }
         $last[$i] = $start[$j] - 1;
      }
      else {      
         $last[$i] = '';
      }
   }
   
   if ($action eq 'inv') {
      for ($i = 0; $i < $n; $i++) {
         print "$line[$i]:range=$start[$i]-$last[$i]\n";
      }
      exit(0);
   }

   #
   # make the range field for Curl
   #

   $range = '';
   $lastfrom = '';
   $lastto = '-100';
   for ($i = 0; $i < $n; $i++) {
      $_ = $line[$i];
      if (/$LEVS/i && /$VARS/i) {
         $from=$start[$i];
         $to=$last[$i];

         if ($lastto + 1 == $from) {
            $lastto = $to;
         }
         elsif ($lastto ne $to) {
            if ($lastfrom ne '') {
               if ($range eq '') { $range = "$lastfrom-$lastto"; }
               else { $range = "$range,$lastfrom-$lastto"; }
            }
            $lastfrom = $from;
            $lastto = $to;
        }
      }
   }
   if ($lastfrom ne '') {
      if ($range eq '') { $range="$lastfrom-$lastto"; }
      else { $range="$range,$lastfrom-$lastto"; }
   }

   if ($range ne '') {
      $err = system("$curl -f -v -s -r \"$range\" $url$grb -o $OUTDIR/$file.tmp";
      $err = $err >> 8;
      if ($err != 0) {
         print STDERR "error in getting file $err $url$grb\n";
         sleep(20);
         exit $err;
      }
      rename "$OUTDIR/$file.tmp", "$OUTDIR/$file";
      $output = "$output $OUTDIR/$file $VARS";
   }
   else {
      print "no matches (no download) for $file\n";
   }
   $fhr += $dhr;
}
print "\n\nfinished download\n\n$output $VARS\n";
exit(0);

論壇徽章:
0
2 [報告]
發(fā)表于 2015-09-09 17:04 |只看該作者
lol:lo求大大幫助!

論壇徽章:
78
雙子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06獅子座
日期:2013-10-18 13:40:31雙子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56處女座
日期:2013-10-24 17:15:30雙子座
日期:2013-10-25 13:49:39午馬
日期:2013-10-28 15:02:15
3 [報告]
發(fā)表于 2015-09-09 18:21 |只看該作者
代碼太長了,有什么困難的直接提出來

求職 : 軟件工程師
論壇徽章:
3
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-07 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-13 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2016-05-05 06:20:00
4 [報告]
發(fā)表于 2015-09-09 20:20 |只看該作者
這必須有償求助,免費的求助估計沒有人愿意耗費精力去研究這么長的代碼。

論壇徽章:
10
2015亞冠之廣州富力
日期:2015-06-16 14:44:332015亞冠之西悉尼流浪者
日期:2015-08-19 13:14:352015亞冠之阿爾希拉爾
日期:2015-08-04 09:38:052015亞冠之薩濟拖拉機
日期:2015-07-31 15:01:582015亞冠之首爾
日期:2015-07-27 14:24:312015亞冠之塔什干火車頭
日期:2015-07-20 09:47:202015亞冠之布里斯班獅吼
日期:2015-07-15 14:58:432015亞冠之首爾
日期:2015-07-07 09:31:262015亞冠之廣州恒大
日期:2015-07-06 15:41:272015亞冠之首爾
日期:2015-08-27 11:03:01
5 [報告]
發(fā)表于 2015-09-10 09:14 |只看該作者
而且看完你的問題,還是沒懂你到底要什么

論壇徽章:
10
2015亞冠之廣州富力
日期:2015-06-16 14:44:332015亞冠之西悉尼流浪者
日期:2015-08-19 13:14:352015亞冠之阿爾希拉爾
日期:2015-08-04 09:38:052015亞冠之薩濟拖拉機
日期:2015-07-31 15:01:582015亞冠之首爾
日期:2015-07-27 14:24:312015亞冠之塔什干火車頭
日期:2015-07-20 09:47:202015亞冠之布里斯班獅吼
日期:2015-07-15 14:58:432015亞冠之首爾
日期:2015-07-07 09:31:262015亞冠之廣州恒大
日期:2015-07-06 15:41:272015亞冠之首爾
日期:2015-08-27 11:03:01
6 [報告]
發(fā)表于 2015-09-10 09:14 |只看該作者
而且看完你的問題,還是沒懂你到底要什么

論壇徽章:
0
7 [報告]
發(fā)表于 2015-09-10 09:19 |只看該作者
回復(fù) 3# yybmsrs


    就是想把抓取獲得的無格式文件重命名。

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
8 [報告]
發(fā)表于 2015-09-10 09:22 |只看該作者
回復(fù) 7# tusigi


    你把那個 rename 的參數(shù)改改不就結(jié)了?

論壇徽章:
0
9 [報告]
發(fā)表于 2015-09-10 09:32 |只看該作者
改了以后輸入的文件名沒有變,而且成為了有格式的.tmp文件,我是在windows上跑的腳本,難道rename不能用?

回復(fù) 8# MMMIX


   

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
10 [報告]
發(fā)表于 2015-09-10 09:58 |只看該作者
回復(fù) 9# tusigi


    你這句話中的每個字我都認(rèn)識,可是合起來之后根本不明白你在說啥!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP