Me gustaría enumerar todos los archivos que coincidan con un determinado patrón ignorando el caso.
Por ejemplo, ejecuto los siguientes comandos:
ls *abc*
Quiero ver todos los archivos que tienen "abc" como parte del nombre del archivo, ignorando las mayúsculas y minúsculas, como
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt
Nota
He buscado case en la página de manual, pero no pude encontrar nada.
Respuesta aceptada:
En realidad, esto lo hace su shell, no ls
.
En bash
, usarías:
shopt -s nocaseglob
y entonces ejecuta tu comando.
O en zsh
:
unsetopt CASE_GLOB
O en yash:
set +o case-glob
y luego tu comando.
Es posible que desee poner eso en .bashrc
, .zshrc
o .yashrc
, respectivamente.
Alternativamente, con zsh:
setopt extendedglob
ls -d -- (#i)*abc*
(es decir, convertir mayúsculas y minúsculas en una base por comodín)
Con ksh93:
ls -d -- ~(i:*abc*)
Quieres globos para trabajar diferente, no ls
, ya que esos son todos los archivos pasados a ls
por la concha.