我有一个IP列表,我必须将所有以210.x.x.x
开头的lP转换为10.x.x.x
例如:
210.10.10.217.170
----> 10.10.10.217.170
是否有任何内联Perl正则表达式替换来执行此操作?
我想在Perl中进行这种替换。
答案 0 :(得分:3)
$ip =~ s/^210\./10./;
答案 1 :(得分:2)
为什么不使用sed呢?
sed -e 's/^210\./10./' yourfile.txt
如果你真的想要一个perl脚本:
while (<>) { $_ =~ s/^210\./10./; print }
答案 2 :(得分:1)
您可以使用perl -pe
迭代文件的行并进行简单的替换:
perl -pe 's/^210\./10./' file
或者就地修改文件:
perl -pi -e 's/^210\./10./' file
答案 3 :(得分:1)
# 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;