GNU/Linux >> Linux Esercitazione >  >> Linux

Glob senza distinzione tra maiuscole e minuscole su zsh/bash

ZSH:

$ unsetopt CASE_GLOB

Oppure, se non vuoi abilitare il globbing senza distinzione tra maiuscole e minuscole in generale, puoi attivarlo solo per la parte variabile:

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

Questo corrisponderà a qualsiasi file che inizi con "somelongstring" (in qualsiasi combinazione di lettere minuscole/maiuscole). Il flag senza distinzione tra maiuscole e minuscole si applica a tutto ciò che è compreso tra parentesi e può essere utilizzato più volte. Leggi il manuale zshexpn(1) per ulteriori informazioni.

AGGIORNA Quasi dimenticavo, devi abilitare extendend globbing perché funzioni:

setopt extendedglob

A seconda della profondità che desideri avere questa inserzione, find offre parecchio a questo proposito:

find . -iname 'SomeLongString*' -maxdepth 1

Questo ti darà solo i file nella directory corrente. Importante qui è il -iname parametro invece di -name .


bash:

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. Quale terminale è migliore:Bash vs Zsh

  2. Comando non trovato in Zsh, ma trovato in Bash?

  3. Globo ricorsivo?

  4. Cronologia di Bash senza numeri di riga

  5. Come azzerare le variabili numeriche in zsh (e forse anche bash?)

Bash mentre Loop

Funzioni Bash

Bash fino a Loop

Dichiarazione del caso Bash

Bash Shebang

Cos'è Zsh? Dovresti usarlo?