regex – 如何替换Perl中现有文件中的字符串?

前端之家收集整理的这篇文章主要介绍了regex – 如何替换Perl中现有文件中的字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在名为1_classification.dat,2_classification.dat等的所有文本文件中将单词“blue”替换为“red”。我想编辑同一个文件,所以我尝试这个代码,但它不工作。我在哪里错了?
@files=glob("*_classification.dat");
foreach my $file (@files)
{
    open(IN,$file) or die $!;
    <IN>;
    while(<IN>)
    {
       $_='~s/blue/red/g';
       print IN $file;
    }

   close(IN)
}

解决方法

一个单线有什么问题吗?
$ perl -pi.bak -e 's/blue/red/g' *_classification.dat

说明

> -p进程,然后打印<>逐行> -i激活就地编辑。使用.bak扩展名备份文件>正则表达式替换作用于隐式变量,它是文件内容,逐行

猜你在找的Perl相关文章