关于 clearcase:如何使用 cleartool find 获取包含特定字符串的文件?

How to use cleartool find to get files containing a specific string?

我正在尝试在给定分支中的所有文件中搜索特定字符串。到目前为止我有

1
cleartool find . -branch 'brtype(<branch-name>)' -print

这将获取当前目录中分支名称"branch-name" 的所有文件。
但我希望能够搜索/grep 这些文件。
你会怎么做呢?


您可以使用命令 cleartool find-exec 指令来链接 grep 命令:

1
2
3
4
5
# Windows syntax
cleartool find . -type f -branch 'brtype(MyBranch)' -exec"grep aSpecificString "%CLEARCASE_PN%""

# Unix syntax
cleartool find . -type f -branch 'brtype(MyBranch)' -exec 'grep aSpecificString"$CLEARCASE_PN"'

注意-type f,将搜索限制在文件(而不是目录)。

还要注意,如果分支 MyBranch.

中有该文件的多个版本,您将多次获得同一个文件

要限制每个分支只有一个文件结果,请将 -branch 替换为 -ele(对于"元素")
(正如我在"如何找到在 clearcase 分支下修改的文件"中所述):

1
2
# Unix syntax
cleartool find . -type f -ele 'brtype(MyBranch)' -exec 'grep aSpecificString"$CLEARCASE_PN"'