Как заменить определенный IP в файле с помощью Perl? - PullRequest
2 голосов
/ 17 ноября 2010

У меня есть список IP-адресов, я должен преобразовать все lP, начиная с 210.x.x.x до 10.x.x.x

Например:

210.10.10.217.170 ----> 10.10.10.217.170

Есть ли какая-либо встроенная подстановка регулярного выражения Perl, чтобы сделать это?

Я хотел бы иметь эту подстановку в Perl.

Ответы [ 4 ]

3 голосов
/ 17 ноября 2010
$ip =~ s/^210\./10./;
2 голосов
/ 17 ноября 2010

почему бы вам не использовать sed вместо этого?

sed -e 's/^210\./10./' yourfile.txt

Если вам действительно нужен Perl-скрипт:

while (<>) { $_ =~ s/^210\./10./; print }
1 голос
/ 21 ноября 2011
# Read the IP list file and store in an array
$ipfile = 'ipfile.txt';
open(ipfile) or die "Can't open the file";
@iplist = <ipfile>;
close(ipfile);

# Substitute 210.x IPs and store all IPs into a new array
foreach $_(@iplist)
{
  s/^210\./10\./g;
  push (@newip,$_);
}

# Print the new array
print @newip;
1 голос
/ 17 ноября 2010

Вы можете использовать perl -pe для перебора строк файла и выполнения простой подстановки:

perl -pe 's/^210\./10./' file

Или изменить файл на месте:

perl -pi -e 's/^210\./10./' file

См. perlrun и s /// .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...