GNU/Linux >> Tutoriels Linux >  >> Linux

Glob insensible à la casse sur zsh/bash

ZSH :

$ unsetopt CASE_GLOB

Ou, si vous ne souhaitez pas activer la globalisation insensible à la casse en général, vous pouvez l'activer uniquement pour la partie variable :

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

Cela correspondra à n'importe quel fichier commençant par "somelongstring" (dans n'importe quelle combinaison de minuscules/majuscules). L'indicateur insensible à la casse s'applique à tout ce qui se trouve entre parenthèses et peut être utilisé plusieurs fois. Lire le manuel zshexpn(1) pour plus d'informations.

MISE À JOUR Presque oublié, vous devez activer le globbing étendu pour que cela fonctionne :

setopt extendedglob

Selon la profondeur à laquelle vous souhaitez avoir cette liste, find offre beaucoup à cet égard :

find . -iname 'SomeLongString*' -maxdepth 1

Cela ne vous donnera que les fichiers du répertoire courant. Important ici est le -iname paramètre au lieu de -name .


bas :

shopt -s nocaseglob


$ 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~

Linux
  1. Historique bash sans numéro de ligne

  2. Comment mettre à zéro les variables numériques dans zsh (et peut-être aussi bash ?)

  3. Exécutez la commande bash sur le pipeline jenkins

  4. bash - correspondance insensible à la casse de la variable

  5. Copier une plage de fichiers en ligne de commande (ZSH/BASH)

Bash pendant la boucle

Fonctions bash

Bash jusqu'à la boucle

Déclaration de cas bash

Bash Shebang

Qu'est-ce que Zsh ? Devriez-vous l'utiliser ?