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

it2023-02-28  85

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)