TC_Circle1
ディレクトリに 、TC_Circle2
、 `TC_Point1 などの名前の XML ファイルがいくつかあり、スクリプトを使用して各ファイルの開始日と終了日を更新したいと考えています。開始日と終了日は、各ファイルのタグ内にあります。
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>
前もってありがとう、クリスタル