linux bash zsh glob

linux - Globo insensible a mayúsculas/minúsculas en zsh/bash



(4)

intento:

shopt -s nocaseglob

Necesito enumerar todos los archivos cuyos nombres comiencen con ''SomeLongString''. Pero el caso de ''SomeLongString'' puede variar. ¿Cómo?

Estoy usando zsh, pero también es bienvenida una solución de bash.


ZSH:

$ unsetopt CASE_GLOB

O bien, si no desea habilitar el globbing que no distingue entre mayúsculas y minúsculas en general, puede activarlo solo para la parte variable:

$ print -l (#i)(somelongstring)*

Esto coincidirá con cualquier archivo que comience con "somelongstring" (en cualquier combinación de mayúsculas / minúsculas). El indicador de mayúsculas y minúsculas se aplica a todo lo que se encuentra entre paréntesis y se puede usar varias veces. Lea el manual zshexpn(1) para más información.

ACTUALIZACIÓN Casi olvidado, debe habilitar Extender y globbing para que esto funcione:

setopt extendedglob


$ function i () { > shopt -s nocaseglob; $*; shopt -u nocaseglob > } $ ls *jtweet* ls: cannot access *jtweet*: No such file or directory $ i ls *jtweet* JTweet.pm JTweet.pm~ JTweet2.pm JTweet2.pm~


Dependiendo de qué tan profundo desee tener este listado, find ofertas bastante a este respecto:

find . -iname ''SomeLongString*'' -maxdepth 1

Esto solo le dará los archivos en el directorio actual. Importante aquí es el parámetro -iname lugar de -name .