perl脚本替换文件中的字符串

sub replace_src_to_des
{     
        my $root = "";
        my $ret = "false";
        my $file_path = $_[0];
        my $id_src = $_[1];
        my $id_des = $_[2];

        my $suffix_file = "_bak";
        my $suffix_file1 = "_tmp_bak";
        my $slash = "/";

        printf LOG_FILE_HANDLE "replace_src_to_des:".$root.$slash.$file_path."\n";
        
        open(_HY_FILE_,"<".$file_path) or die ("$file_path : file error!", __FILE__, __LINE__);
        open(_HY_FILE_BAK_,">".$file_path.$suffix_file) or die ("$file_path.$suffix_file : file error!", __FILE__, __LINE__);
        
        while (my $line=<_HY_FILE_>)
        {
            chomp($line);
            
            my $position = index($line, $id_src);
            
            #print "position:".$position."\n";
            
            if($position >= 0)
            {

                #replace the id_src value with id_des
                my $header_line = "";
                my $tail_line = "";
                my $temp_line = "";
                
                printf LOG_FILE_HANDLE "line:".$line."\n";
                
                if($position >= 1)
                {
                    $header_line = substr($line, 0, $position);
                    $tail_line = substr($line, $position+length($id_src), length($line));
                    $temp_line = $header_line.$id_des.$tail_line."\n";
                }
                else
                {
                    $tail_line = substr($line, $position+length($id_src), length($line));
                    $temp_line = $id_des.$tail_line."\n";
                }
                
                printf LOG_FILE_HANDLE "header_line:".$header_line."  tail_line:".$tail_line."\n";
                printf LOG_FILE_HANDLE "temp_line:".$temp_line."\n";
                
                
                syswrite(_HY_FILE_BAK_,$temp_line);

                $ret = "replaced";
            }
            else
            {
                syswrite(_HY_FILE_BAK_,$line."\n");
            }
        }
        close(_HY_FILE_);
        close(_HY_FILE_BAK_);
        system "mv $file_path $file_path$suffix_file1";
        #system "rm -rf $file_path";
        system "mv $file_path$suffix_file $file_path";
        printf LOG_FILE_HANDLE "successful!\n";

        return $ret;
}

replace_src_to_des("build/make/tools/buildinfo.sh", "\$BUILD_DISPLAY_ID", $softVer);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值