Jan*_*Jan 6 clearcase labels cleartool
我想在ClearCase中找到标有特定标签但没有设置任何其他标签的文件.
例如,如果我有像这样标记的文件:
file1 LBL_A, LBL_B
file2 LBL_A
Run Code Online (Sandbox Code Playgroud)
我想有一个查询,只给我file2而不是file1.
有没有办法用cleartool找到这个?如果单个查询无法做到这一点,我也很高兴有任何想法如何在几个步骤中执行此操作(我将从perl脚本调用cleartool,因此保存文件列表很容易暂时并在它们上运行更多命令).
非常感谢提前!
一月
假设LBL_A是您想要运行的(唯一)标签
cleartool find /some/dir -version 'lbtype(LBL_A)' -print | xargs cleartool describe -fmt "%n: %l"
Run Code Online (Sandbox Code Playgroud)
应该给
file1: (LBL_A, LBL_B)
file2: (LBL_A)
Run Code Online (Sandbox Code Playgroud)
作为输出,然后您可以检查perl脚本或过滤sed -n 's/\(.*\): (LBL_A)/\1/p'(假设文件名中没有冒号).
更新:正如VonC正确指出的那样,对于包含空格的文件,上面的命令将失败.要将该运行处理为:
cleartool find ... -print | tr '\012' '\000' | xargs -0 cleartool ....
Run Code Online (Sandbox Code Playgroud)
这会将换行符转换为ascii null,然后让xargs将其用作分隔符.
您可以直接执行此操作而无需管道:
cleartool find . -ver "lbtype(LBL_A) && !lbtype(LBL_B)" -print
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20757 次 |
| 最近记录: |