¿Cómo excluir archivos por nombre en un comando de búsqueda de ClearCase?
-
03-07-2019 - |
Pregunta
Usando el comando de búsqueda ClearCase, ¿cómo encuentro todos los archivos en un directorio que no tienen el nombre pom.xml?
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 Linux de ClearCase. He intentado " 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 lo odio. ¡He leído las páginas del manual varias veces y no veo una manera clara de hacer esto que funcione!
Solución
Parece olvidar la opción -exec del comando de búsqueda de cleartool.
En realidad, le permite ejecutar otros comandos distintos de los de Cleartool, incluidos los del sistema (como un script sh o DOS).
Sé que preferiría no ejecutar otro comando, pero si ese otro script del sistema es parte de la opción ejecutiva de un comando de búsqueda ... se puede argumentar que sigue siendo uno comando;)
Cree un script simple como:
(Unix 'print.sh')
#!/bin/sh
if [ $1 != $2 ] ; then
echo $1
fi
(windows 'print.bat')
@echo off
if not "%1"=="%2" echo "%1"
Coloque ese script en su directorio de búsqueda o agregue la ruta del script a su entorno% PATH% o $ PATH.
Y finalmente, use el comando find (con todas las otras opciones sobre el filtrado de fechas, el filtrado de sucursales, etc.)
(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 solo a nombres de archivo (no a nombres de directorio).
Otros consejos
Los comodines ClearCase no tienen inversión (AFAIR) pero puede usar grep para esto -
cleartool ls -short -nxname | grep -v pom.xml
Hay otra solución que podría funcionar para usted. Probar