linux怎样修改xml文件,需要在Linux中使用Perl脚本修改几个XML文件env

我在目录中有几个名为TC_Circle1,TC_Circle2,`TC_Point1等的XML文件,我想用脚本更新每个文件中的开始和结束日期。开始日期和结束日期在每个文件内部和标签中。需要在Linux中使用Perl脚本修改几个XML文件env

我在使用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 = ;

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);

}

这里的文件怎么修改一下开头:提前

2013-03-06T00:00:00

2013-03-07T00:00:00

... The rest of the xml file...

感谢, 水晶

+0

你能告诉我们一个(简短的!)输入数据的例子吗? –

2013-05-08 16:29:18

+1

非常危险。如果此程序在开始写入后死亡,则会丢失文件。它应该写入临时文件然后替换。 –

2013-05-08 16:34:51

+0

该脚本写得相当不错,并且不会将这些文件视为XML。它也不会在同一个文件上运行两次。你确定原文有单引号的“ls TC *”,而不是反引号,这将需要将字符串作为shell命令运行? –

2013-05-08 16:39:41

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值