Con zsh
y calificadores glob ( e
cadena ):
print -rl -- *(/e_'[[ ! -f $REPLY/README ]]'_)
o
print -rl -- *(/^e_'[[ -f $REPLY/README ]]'_)
agregar D
para incluir directorios ocultos:
print -rl -- *(D/e_'[[ ! -f $REPLY/README ]]'_)
/
selecciona solo directorios y e_'[[ ! -f $REPLY/README ]]'_
además selecciona solo los nombres de directorio para los que devuelve el código de shell entre las comillas true
, es decir, para cada nombre de directorio ( $REPLY
) al que se *(/)
expande el globo , se ejecuta [[ ! -f $REPLY/README ]]
y mantiene el nombre del directorio si el resultado es true
.
La segunda forma ^e_'.....'_
usa el mismo calificador global, negado (pero esta vez la expresión condicional no se niega:) [[ -f $REPLY/README ]]
.
Lo anterior solo devolverá los nombres de directorio en el directorio actual.
Si desea buscar de forma recursiva (nuevamente, para incluir directorios ocultos, agregue el D
calificador):
print -rl ./**/*(/e_'[[ ! -f $REPLY/README ]]'_)