此 Perl 脚本在 Win7 上运行,修改将在 Linux机器上读取的 Clearcase 配置规范。Clearcase 对它的行尾非常挑剔,它们必须精确且只有 \n (0x0A) 但是尽我所能尝试我不能让 Perl 只吐出 \n 结尾,它们通常会出现 \r\n (0x0D 0x0A)
这是 Perl 片段,运行在一组配置规范元素上,并将element /somevob/...
位转换element /vobs/somevob/...
为文件句柄并打印到文件句柄。
$fh = new FileHandle;
foreach my $line (@cs_array)
{
$line =~ s/([element|load])(\s+\/)(.+)/$1$2vobs\/$3/g;
$line =~ s/[\r\n]/\n/g; # tried many things here
$fh->print($line);
}
$fh->close();
有时数组中的元素是多行的,用\n分隔
element /vob1/path\nelement\n/vob2/path\nload /vob1/path\n element\n
/vob3/path
load /vob3/path
当我在二进制查看器中查看在 Win7 上编写的文件时,总是会出现 Linux 上的 Clearcase 抱怨的 0x0D 0x0A 换行序列。这似乎来自印刷品。
有什么建议么?我以为这将是一个 10 分钟的工作...