2003 11/11

この作業は 意味が分かりにくいので  pkg.txt   5.2all.pkg    1.pl  を1箇所に置いて 1.plを実行したら
意味が分かる

その後 2.plを実行する   最後に get.shを実行する


例えば hitaの pkgを 元に バージョンがちかいpkgを全て ftpからDLする方法
材料
 pkg.txt 
4.8all.pkg
4.9all.pkg
5.0all.pkg
5.1all.pkg
5.2all.pkg

下のperlスプリクト1.pl で

#!/usr/bin/perl          ######  1.pl
open(F, "pkg.txt");
while ($abc =<F>){
$abc =~  /(^......)/ ;        行頭から 6文字ぐらい 切り取り     
print "grep $1 5.2all.pkg >> out\n";    4.9の部分は その都度書き換える    $1 は (^......) である
}
print "\n";
close (F);

この結果 outは   grep xv-3.1 4.9Rall.txt >> out
                        grep xworm- 4.9Rall.txt >> out
のようなファイルを作る   そして 最後に   # perl ./1.pl >> out.sh を作り  これを実行する

#!/usr/bin/perl         ######  2.pl
#
# 2002 10-19 ok
open(F, "out");
while ($abc =<F>){
   
$abc =~  /(^................................................)(.*)($)/ ;
# $abc =~ s/$1/grep /g ;
print "get $2\n";  
}
print "\n";
close (F);
################################           get.sh         #################################

#!/bin/sh
ftp -in << EOC
        open ftp6.jp.freebsd.org
        user anonymous mnyu@kk.email.ne.jp
        cd /pub/FreeBSD/ports/i386/packages-4.9-release/All
        pwd
          lcd /1
        ascii
          mget ja-kinput2-freewnn-3.1_2.tgz
    mget ja-ls-0.4.tgz
     mget ja-man-doc-5.1.tgz
        EOC >>
    bye

###################################################################################
















pkg 情報を元に 行頭から 6文字ぐらい 切り取り 前に grep を 後ろに 4.9Rall.txt >> out を付け
  grep ORBit- 4.9Rall.txt >> out  のようにする 
grep     コマンド
ORBit- pkgから切り出し
4.9Rall.txt  全ファイル
>> out    保存先

そうすると outは
-rw-r--r--  1 ftpadmin  ftpadmin    631075 Oct  7 00:55 ORBit-0.5.17_1.tgz  のようになる
|<ーーーーここから。。。。。。。。。ここまでーーーー>|       55文字を get コマンド に置換する

$xyz =~  /(^........................................................)(.*)($)/ ;
 
                       $1 第一のマッチ   $2 第2のマッチ   $3  第3のマッチ