Me gustaría enumerar todos los archivos que coinciden con un cierto patrón mientras se ignora 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 el caso, 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 casos en la página del manual, pero no pude encontrar nada.
shport -s nocaseglob
?shopt -s
; para desarmarlo , lo usasshopt -u
. Alternativamente, se puede envolver todo en un subnivel mediante el uso( )
de modo que el ajuste no afecta a la cáscara de los padres:(shopt -s nocaseglob ; ls *abc*)
.[aA][bB][cC]
)?shopt
comando en los últimos 15 años de usar bash!Como explica polemon, es el shell (no ls) que se extiende
*abc*
a una lista de archivos. Esto se llama coincidencia de patrones .Además de cambiar todo el comportamiento de Coincidencia de patrones para ignorar mayúsculas y minúsculas, podría usar otra forma de coincidencia de patrones que no sea
*
. Lo siguiente haría lo que quieras en bash:De bash man:
Esto permite una mayor coincidencia de grano fino donde podría usar
*[aA][bB]c*
para hacer coincidirabc
oABc
no,abC
o noABC
. O un ejemplo en francés, donde podría querer unir todas las instancias dele
personaje:fuente
[...]
puede ser útil en muchos casos, y pensé que valía la pena mencionarlo.[[=e=][=E=]]
.También puede agregar la
-i
opción (--ignore-case)grep
para obtener y la salida a continuación.fuente
No creo que esto sea posible con ls, pero podría usar find en su lugar:
fuente
usa el siguiente código:
fuente
Puede usar el archivo GREP para
-i
agregar la opción insensible.Por ejemplo, para encontrar ambos
abc
yABC
puede ejecutar este comandofuente
-i
opción en ninguna parte de tu comando.ls
?En tcsh, establezca un alias en .aliases
("BS" = una "barra invertida"; tuve que usar esto para que aparezca en mi navegador).
y usar en
lsnc
lugar dels
En bash, prueba un alias en .bash_aliases como
Con opciones para
ls
, por ejemplols -l
, aquí hay una solución simple:tcsh:
golpetazo:
fuente
=
' después de lsnocase?ls
, no hay nadals
ysort
puede para solucionar la situación. Como se señaló en otras respuestas, el problema debe resolverse en el shell, no con unals
sintaxis.