perl脚本实现XXXlabelXXX查找version

clearcase不提供使用通配符*/?查找,没办法,网上找了一圈也没找到我想要的命令,正好在学perl,写了个脚本,终于是实现了通过label名字的部分字符,也可以查询version的功能。


在/vobs/myvob中查找lbtype为*1.2.1的所有version

#!/ap/local/5.8/bin/perl -w

$filename="label.txt";
$ct = "/usr/atria/bin/cleartool";
$viewname="LATEST";
$vobdir = "/vobs/myvob";
$sub_label = "1.2.1";

[@more@]

system "$ct setview -exec '$ct lstype -kind lbtype -s -invob $vobdir | grep $sub_label' $viewname > $filename";

open (MYFILE, $filename) || die "can not open for $! n";

while () {
chomp;
print "$_/n"; # "/"应该换成反斜杠,因为blog不认,只能用正斜杠代替了。
system "$ct setview -exec '$ct find $vobdir -ver "lbtype($_)" -print' $viewname ";
print "/n"; # "/"应该换成反斜杠
}

close (MYFILE);


++++++++++++++++++++++++++++++++++++++++++++++

代码更新,更简化:

#!/ap/local/5.8/bin/perl -w

$filename="label.txt";
$ct = "/usr/atria/bin/cleartool";
$viewname="LATEST";
$vobdir = "/vobs/myvob";
$sub_label = "1.2.1";

@line = `$ct setview -exec '$ct lstype -kind lbtype -s -invob $vobdir | grep $sub_label' $viewname `;

foreach (@line){
print "/n$_"; # "/"应该换成反斜杠
system "$ct setview -exec '$ct find $vobdir -ver "lbtype($_)" -print' $viewname";
}

-------------------------------------------------------------------

打印结果如下:

AAAA_V1.2.1
/vobs/myvob/dir1/file1@@/main/2

BBBB_V1.2.1
/vobs/myvob/dir1/file2@@/main/2

CCCC_V1.2.1
/vobs/myvob/dir2/file1@@/main/43
/vobs/myvob/dir2/file2@@/main/branch/5

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/126198/viewspace-911525/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/126198/viewspace-911525/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值