Regex 如何用Perl替换文件中的特定IP?

Regex 如何用Perl替换文件中的特定IP?,regex,perl,Regex,Perl,我有一个IP列表,我必须将所有从210.x.x.x开始的LP转换为10.x.x.x 例如: 210.10.10.217.170--->10.10.10.217.170 是否有任何内嵌的Perl正则表达式替换可以做到这一点 我希望用Perl进行替换。为什么不使用sed呢 sed -e 's/^210\./10./' yourfile.txt 如果您确实需要perl脚本: while (<>) { $_ =~ s/^210\./10./; print } while(){$\u=~

我有一个IP列表,我必须将所有从
210.x.x.x
开始的LP转换为
10.x.x.x

例如:

210.10.10.217.170
--->
10.10.10.217.170

是否有任何内嵌的Perl正则表达式替换可以做到这一点


我希望用Perl进行替换。

为什么不使用sed呢

sed -e 's/^210\./10./' yourfile.txt
如果您确实需要perl脚本:

while (<>) { $_ =~ s/^210\./10./; print }
while(){$\u=~ s/^210\./10./;print}

您可以使用
perl-pe
对文件的行进行迭代,并进行简单的替换:

perl -pe 's/^210\./10./' file
或要就地修改文件,请执行以下操作:

perl -pi -e 's/^210\./10./' file
请参阅和。

#读取IP列表文件并存储在数组中
$ipfile='ipfile.txt';
打开(ipfile)或死亡“无法打开文件”;
@iplist=;
关闭(ipfile);
#替换210.x IP并将所有IP存储到新阵列中
foreach$(@iplist)
{
s/^210\./10\./g;
推送(@newip,$);
}
#打印新数组
打印@newip;

您有输入文件的示例吗?这些不是有效的IP地址。IP地址有四个部分-这些值有五个部分。我怀疑您需要a/g。与sed相当的perl是
perl-pe的/^210\./10./'yourfile.txt
请在代码中添加一些解释,谢谢:)
perl -pi -e 's/^210\./10./' file
# 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;