Как использовать cleartool find для получения файлов, содержащих определенную строку?

Я пытаюсь найти все файлы в данной ветке для определенной строки. До сих пор у меня есть

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

Это получает все файлы в текущем каталоге для ветки с именем «branch-name».
Но я хочу иметь возможность искать/выбирать эти файлы.
Как бы вы это сделали?


person wizurd    schedule 05.06.2014    source источник


Ответы (1)


Вы можете использовать директиву -exec из команда cleartool find, чтобы связать команду grep:

# 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 (для элемента)
(как показано в разделе "Как найти файлы, измененные в ветке с прозрачным регистром"):

# Unix syntax
cleartool find . -type f -ele 'brtype(MyBranch)' -exec 'grep aSpecificString "$CLEARCASE_PN"'
person VonC    schedule 05.06.2014