Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

433
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda