Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

418
Vistas
Excluir nombres de archivo con cierto prefijo en for loop (globbing)

Esto es probablemente bastante fácil, pero no puedo resolverlo. En un ciclo for, quiero excluir ciertos archivos con el prefijo zz (por ejemplo zz131232.JPG ), pero no sé cómo excluir estos archivos.

 for i in *.JPG; do # do something done

¿Cómo modifico la 'regla for' para excluir archivos con el prefijo zz ?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Algo como

 for i in *.JPG; do [[ $i != "zz"* ]] && echo "$i" done

o saltarlos:

 for i in *.JPG; do [[ $i == "zz"* ]] && continue # process the other files here done
over 4 years ago · Santiago Trujillo Denunciar

0

Si está tratando con muchos archivos, también puede usar GLOBIGNORE o extended globbing para evitar expandir los archivos que desea omitir en primer lugar (que podría ser más rápido):

 GLOBIGNORE='zz*' for file in *.JPG; do do_something_with "${file}" done # save and restore GLOBIGNORE if necessary

o

 shopt -s extglob # enable extended globbing for file in !(zz*).JPG; do do_something_with "${file}" done shopt -u extglob # disable extended globbing, if necessary

Tenga en cuenta que si no hay archivos .JPG en el directorio actual, el bucle aún se ingresará y $i se establecerá en el literal *.JPG (en su ejemplo), por lo que debe verificar si el archivo existe dentro del bucle o utilice la opción nullglob .

 for file in *.JPG; do [ -e "${file}" ] || continue do_something_with "${file}" done

o

 shopt -s nullglob for file *.JPG; do do_something_with "${file}" done shopt -u nullglob # if necessary

Pruebe lo siguiente en su shell para comprender qué sucede sin nullglob :

 $ for f in *.doesnotexist; do echo "$f"; done *.doesnotexist
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda