我正在尝试修改perl脚本以注释掉与某些模式匹配的所有行。在正常的命令提示符中,这是我要添加的行:
grep -lIRZ --exclude="*\.svn*" "pattern" . | xargs -0 -l sed -i -e 's/.*pattern.*/\/\/&/g'
这是在perl脚本的上下文中:
my $rmcmd = "grep -lIRZ --exclude=\"*\\.svn*\" \"pattern\" . | xargs -0 -l sed -i -e 's/.*pattern.*/\\/\\/&/g'";
runcmd($rmcmd);
...
sub runcmd {
my @cmd = @_;
print "Running: @cmd\n";
system(@cmd);
# Get status from system
my $ret = $? >> 8;
if ($ret) {
print "-E- command completed with error code $ret.\n";
exit(1);
}
return ($ret);
}
从命令提示符运行时,一切正常,但运行相同命令的脚本始终崩溃。
有什么不同的做法,我该如何解决?
答案 0 :(得分:0)
你的代码适用于我 - 在Ubuntu上使用perl 5.10.1 - 在$ rmcmd = ..行的末尾重新插入缺少的分号后。