#!/usr/bin/perl use Getopt::Std; use Cwd; use vars qw /%opt/; my $options = 'h:i:l:v:'; my %fldinfo; my @entries = (); my $dir = getcwd; getopts("$options", \%opt) or usage(); sub usage { print "Usage: $0 -[h] -i \n"; if ($opt{h}) { print " -h : help\n"; print " -i : xml input file \n"; print " -l : list of field will be changes\n"; print " -v : assigned the change values\n"; } } sub change_specified_field { my $fvalue = $opt{v}; my ($ff, $fv) = (split(/=/,$opt{v}))[0,1]; $ff = lc($ff); $fv =~ s/(\S{2})/$1 /g; $fv =~ s/\s$//g; open(TMP, "+> $dir/$opt{i}.tmp"); open(DATA, "$opt{i}"); while (my $data = ) { chomp($data); $data = lc($data); foreach (split(/CallDataRecord/,$data)) { if ($_ =~ /$ff/) { print TMP "$1>$fv<$3\n" if /(.*)>(.*)<(.*)/; } else { printf TMP "$_\n"; } } } close(DATA); close(TMP); system("mv $dir/$opt{i}.tmp $dir/$opt{i}"); } main { if ($opt{h}) { usage(); } if ($opt{i} && $opt{v}) { change_specified_field(); } exit(); }