指定されたファイルで、URL アドレスの末尾「.pl」を「.en」に、最後から 2 番目の「.com」を「.org」に変更する方法
例: http://www.addres.pl に変更: http://www.addres.en
アドレスにhttp://www.addres.com.plのようなアドレスが存在する場合は、次のように 変更します: http://www.addres.org.en
http://www.addres.com.ruのように表示される場合は、 .com http://www.addres.org.ruのみを変更します。
テキストファイルの入力例:
http://www.addres.org.en
http://www.addres.com.pl
http://www.addre.pl
http://www.addres.en
http://www.addres.ru
http://com ddd http://www.com.pl.com.pl.com.pl.com.pl
aaa http://www.addres.com.pl! bbb
ccc (http://www.addre.pl) ddd
コンソール出力の例:
http://www.addres.org.en
http://www.addres.org.en
http://www.addre.en
http://www.addres.en
http://www.addres.ru
http://com ddd http://www.com.pl.com.pl.com.pl.org.en
aaa http://www.addres.org.en! bbb
ccc (http://www.addre.en) ddd
今のところ、入力がファイルかどうかを確認するためにこれがあります
#!/usr/bin/perl
use warnings;
use strict;
use File::Find;
if (($#ARGV+1 != 1 )||(! -f $ARGV[0]))
{
print "podaj plik\n";
exit 1;
}
#!/usr/local/bin/perl
open (MYFILE, $ARGV[0]);
while (<MYFILE>) {
chomp;
my $url = $_;
for ($url) {
#s|(com)(.??)|org$2| and last;
s|com.pl|org.en| and last;
s|com[.]|org.| and last;
s|[.]pl|.en|;
}
print "$url\n";
}
close (MYFILE);
exit 0;
これを作る方法
s|com[.]ru|org.ru| and last;
このようにすべてのアドレスを変更します
s|com[.]??|org.??| and last;
どこ ??たとえば、ru、en、またはその他すべての場合は pl のいずれかです。