Je voudrais énumérer tous les fichiers correspondant à un certain modèle tout en ignorant le cas.
Par exemple, j'exécute les commandes suivantes:
ls *abc*
Je veux voir tous les fichiers qui ont "abc" dans le nom du fichier, en ignorant le cas, comme
-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
Remarque
J'ai effectué une recherche dans la page de manuel relative à la casse, mais je n'ai rien trouvé.
shport -s nocaseglob
?shopt -s
; pour le désactiver , vous utilisezshopt -u
. Vous pouvez envelopper le tout dans un sous - shell en utilisant de( )
sorte que le réglage ne touche pas la coquille mère:(shopt -s nocaseglob ; ls *abc*)
.[aA][bB][cC]
)?shopt
commande au cours des 15 dernières années d’utilisation de bash!Comme expliqué par polemon, c'est le shell (pas ls) qui s'étend
*abc*
à une liste de fichiers. Ceci s'appelle la correspondance de modèle .En plus de changer tout le comportement de correspondance de modèle pour ignorer la casse, vous pouvez utiliser une autre forme de correspondance de modèle que le
*
. Ce qui suit ferait ce que vous voulez dans bash:De bash man:
Cela permet de faire correspondre à grain plus fin où vous pouvez utiliser
*[aA][bB]c*
pour correspondreabc
ouABc
nonabC
ouABC
. Ou un exemple en français, où je pourrais vouloir faire correspondre toutes les instances due
caractère:la source
[...]
peut être utile dans de nombreux cas, et je pensais que cela méritait d'être mentionné.[[=e=][=E=]]
.Vous pouvez également ajouter l'
-i
option (--ignore-case)grep
à obtenir et la sortie ci-dessous.la source
Je ne pense pas que cela soit possible avec ls, mais vous pouvez utiliser find à la place:
la source
utilisez le code suivant:
la source
Vous pouvez GREP utiliser le fichier
-i
qui ajoute l’option insensible.Par exemple pour trouver les deux
abc
etABC
vous pouvez exécuter cette commandela source
-i
option dans votre commande.ls
?Dans tcsh, définissez un alias dans .aliases
("BS" = un "backslash"; je devais l'utiliser pour qu'il apparaisse dans mon navigateur.)
et utiliser
lsnc
au lieu dels
En bash, essayez un alias dans .bash_aliases comme
Avec des options pour
ls
, par exemplels -l
, voici une solution simple:tcsh:
frapper:
la source
=
' après lsnocase?ls
, il n'y a rienls
etsort
peut peut pour corriger la situation. Comme indiqué dans d'autres réponses, le problème doit être résolu dans le shell, pas avec unels
syntaxe.