2008-10-20 13 views
5

Usando el comando de búsqueda de ClearCase, ¿cómo encuentro todos los archivos en un directorio que no tienen el nombre pom.xml?Cómo excluir archivos por nombre en un comando de búsqueda de ClearCase?

Me gustaría pasar otras opciones de selección al comando de búsqueda de ClearCase, así que prefiero no ejecutar otro comando.

Estoy usando una versión de RedCat de Linux de ClearCase. Lo he intentado con "cleartool find! -name pom.xml -print" y eso no funciona.

PD: No uso ClearCase por elección, es obligatorio en mi proyecto. Esta es una de las razones por las que odio. ¡He leído las páginas del manual varias veces y no veo una manera clara de hacer esto que funcione!

+0

encontrado un comando de una línea que lo hacen justo lo que necesita. Ver abajo – VonC

+0

¡Has vuelto! :-) Y desde el 'tic' en mi respuesta, este "one-liner" ha hecho el truco. Guay. – VonC

Respuesta

2

Parece olvidar el -exec opción del cleartool encontrar comandos.

En realidad, sí le permite ejecutar otros comandos que no sean cleartool, incluidos los del sistema (como una secuencia de comandos sh o DOS).

sé que "preferiría no ejecutar otro comando", pero si ese otro script del sistema es parte de la opción exec de un comando find ... puede argumentarse que sigue siendo uno de comandos;)

Por lo tanto crear un script sencillo como:

(Unix 'print.sh')

#!/bin/sh 
if [ $1 != $2 ] ; then 
    echo $1 
fi 

('imprimir.bat' ventanas)

@echo off 
if not "%1"=="%2" echo "%1" 

Ponga esa secuencia de comandos en su directorio de búsqueda o agregue la ruta de la secuencia de comandos a su entorno% PATH% o $ PATH.

Y, por último, utilizar el comando Buscar (con toda la other options respecto filtrado fecha, el filtrado de la rama y así sucesivamente)

(Unix)

cleartool find . -nrec -type f -exec './print.sh $CLEARCASE_PN ./pom.xml' 

(ventanas)

cleartool find . -nrec -type f -exec "print.bat %CLEARCASE_PN% .\pom.xml" 

Y aquí tienes: "todos los archivos en un directorio que no tienen el nombre pom.xml".

Nota: la opción '-type f' del comando find le permite restringir la búsqueda a nombres de archivo solamente (no nombres de directorio).

+0

Eso está bien, excepto en los casos en que hablamos de cleartool evaluando miles de archivos (en mi caso, decenas de miles) de archivos con cierta directorio. Quiero que Cleartool ni siquiera mire un directorio en particular. Si lo tengo, evalúelo todo y luego omítelo más tarde con otro comando, después de que cleartool haya terminado de buscar todo, tomará mucho más tiempo en completarse. – searchengine27

3

comodines ClearCase no tiene inversión (AFAIR) pero se puede utilizar grep para esto -

cleartool ls -short -nxname | grep -v pom.xml 
+0

No creo que ese fuera el nombre xml que usaba el OP ;-) – Tanktalus

3

Hay otra solución que podría funcionar para usted. Trate

ccapply task

Cuestiones relacionadas