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のマッチ