TC_Circle1
我在一个目录中有几个名为, , `TC_Point1 等的XML 文件TC_Circle2
,我想使用脚本来更新每个文件中的开始和停止日期。开始和停止日期在每个文件的内部和标签中。
当我们使用 Sun 机器时,我有一个脚本可以运行,但它不能在新的 HP Linux 机器上运行。它不会显示任何错误,也不会更改日期。我需要帮助让它在 Linux 中工作。剧本:
#!/usr/local/bin/perl
$numArgs = @ARGV;
if ($numArgs != 2)
{
print "Usage: replace_default_date.pl DEFAULT_START_DATE DEFAULT_STOP_DATE\n";
}
@filenames = `ls TC*`;
chomp(@filenames);
foreach $file (@filenames)
{
open(REGFILE, "$file") || die "Cannot open |$file|";
@lines = <REGFILE>;
close(REGFILE);
open(WRITEFILE), ">$file") || die "Cannot open |$file|";
foreach $line (@lines)
{
if ($line =~ /DEFAULT_START_DATE/)
{
$newline = " " . $ARGV[0];
print WRITEFILE "$newline\n";
}
elsif ($line =~ /DEFAULT_STOP_DATE/)
{
$newline = " " . $ARGV[1];
print WRITEFILE "$newline\n";
}
else
{
print WRITEFILE "$line\n";
}
}
close (WRITEFILE);
}
以下是要修改的文件在开头的样子:
<RequestSomething xmlns="http://something.com/accessservice">
<period xmlns="">
<start>2013-03-06T00:00:00</start>
<stop>2013-03-07T00:00:00</stop>
</period>
... The rest of the xml file...
</RequestSomething>
在此先感谢,水晶