你是对的,这两个解决方案都不起作用:
cleartool ls -rec | grep -v "Rule:" | grep -v "eclipsed" | grep -v "-->" | xargs rm -v
cleartool lsprivate | grep -v "黯然失色" | xargs rm -v
资料来源:我在“命令以递归方式查找当前目录中的所有查看私有文件”的旧答案。
像任何其他私有文件一样单独列出黯淡的lsprivate
文件:
M:\yourDynView\yourVob\aDir\>ct lsprivate
M:\yourDynView\yourVob\aDir\aFile.vsd
M:\yourDynView\yourVob\aDir\aPrivateFile
但是,一个lsprivate -l
列表两次使文件黯然失色:
M:\yourDynView\YourVob>ct lsprivate -long
view private object M:\yourDynView\yourVob\aDir\aFile.vsd
file element M:\yourDynView\yourVob\aDir\aFile.vsd@@ [eclipsed]
view private object M:\yourDynView\yourVob\aDir\aPrivateFile
所以你需要三遍
- 一个生成那个
cleartool lsprivate -l
- 一个删除包含的行上方的任何行
eclipsed
- 一个读取该文件并删除该文件中列出的剩余私有文件
第二步可能是(在这个线程之后松散测试)
gawk "{if ((NR!=1)&&($0!~/eclipsed/)) {if ($lastlin!~/eclipsed/) {print astlin};lastlin=$0} } END{print lastlin} " s
使用 ' s
' 包含 a 的结果的文件cleartool lsprivate -l
。