加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:23:25 所属栏目:大数据 来源:网络整理
导读:我想在名为1_classification.dat,2_classification.dat等的所有文本文件中将单词“blue”替换为“red”。我想编辑同一个文件,所以我尝试这个代码,但它不工作。我在哪里错了? @files=glob("*_classification.dat");foreach my $file (@files){ open(IN,$f
我想在名为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扩展名备份文件>正则表达式替换作用于隐式变量,它是文件的内容,逐行

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读