0

指定されたファイルで、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 のいずれかです。

4

1 に答える 1