Bash jolly

Bash jolly
Quando dobbiamo cercare qualcosa usando i comandi Shell, dobbiamo definire uno schema per la ricerca. I caratteri per jolly vengono utilizzati per definire il modello per la ricerca o la corrispondenza del testo sui dati della stringa nella shell bash. Un altro uso comune dei caratteri jolly è creare espressioni regolari. Come è possibile utilizzare diversi tipi di caratteri jolly per la ricerca di file è mostrato in questo tutorial.

Personaggi jolly

I tre principali personaggi dei caratteri jolly sono,

  • Star o Asterisk (*)
  • Punto interrogativo (?)
  • Parentesi quadre ([])

Asterisk (*) viene utilizzato per cercare un particolare carattere per zero o più volte. Punto interrogativo (?) viene utilizzato per cercare un numero fisso di caratteri in cui ogni punto interrogativo (?) indica ogni carattere. Le staffe quadrate vengono utilizzate per abbinare i caratteri di una gamma definita o un gruppo di caratteri. Gli usi di questi personaggi sono mostrati nella parte successiva di questo tutorial.

Uso dell'asterisco (*)

Asterisk (*) può essere utilizzato in vari modi con i comandi Shell per la ricerca di file. L'uso diverso dell'asterisco (*) è mostrato nei seguenti esempi.

Esempio - 1: ricerca di file specifici con nome file e '*'

'ls' Il comando viene utilizzato per scoprire l'elenco di file e cartelle della directory corrente. 'ls a*' Il comando cercherà e stamperà tutti i nomi di file della directory corrente che inizia con il carattere, 'UN'.

$ ls
$ ls a*

Produzione:

Secondo il seguente output, esistono 12 file nella directory corrente che inizia con il carattere, "A".

Esempio - 2: ricerca di file con estensione particolare e '*'

È possibile cercare qualsiasi file utilizzando l'asterisco (*) e l'estensione del file. Se vuoi cercare tutti i file con IL '.TXT' Estensione dalla directory corrente quindi eseguire il seguente comando dal terminale. Qui, il nome file può essere qualsiasi carattere / i e qualsiasi numero di caratteri.

$ ls *.TXT

È inoltre possibile cercare file di diverse estensioni utilizzando l'asterisco (*). Il comando seguente cercherà a qualsiasi file con estensione '.sh' O '.TXT'

$ ls *.sh *.TXT

Produzione:

L'output mostra l'elenco di tutti i file esistenti della directory corrente con l'estensione '.sh 'e'.TXT.

Esempio - 3: rimozione del file per corrispondenza parziale e '*'

È possibile utilizzare l'Asterisk (*) per abbinare parzialmente qualsiasi nome file. Il comando seguente rimuoverà il file che contiene il 'test' parola in qualsiasi parte del nome file.

$ ls
$ rm *test *
$ ls

Produzione:

Il seguente output mostra che esistono due file nella directory corrente che contiene la parola "test" e questi file sono stati rimossi dopo aver eseguito il comando "RM".

Uso del punto interrogativo (?)

Quando conosci il numero esatto di personaggi che vuoi cercare, allora il punto interrogativo (?) può essere usato il jolly. I seguenti esempi mostrano il diverso uso del punto interrogativo (?) carta jolly.

Esempio - 1: ricerca di file con nome file e '?'

Supponiamo, l'estensione del file, il numero totale di caratteri di un file e alcuni caratteri del file, è possibile utilizzare questo jolly per cercare nel file. Il primo comando cercherà quei file che hanno l'estensione '.TXT'. Il secondo comando cercherà quei file lunghi quattro caratteri, l'ultimo carattere è "t" e l'estensione del file è ".TXT'.

$ ls *.TXT
$ ls ???T.TXT

Produzione:

L'output mostra che 7 file esistono nella directory corrente con il '.L'estensione di txt e un file di testo esiste che è lungo 4 caratteri e l'ultimo carattere è "t".

Esempio -2: ricerca di file con estensione e '?'

Supponiamo che tu conosci il nome file e il numero totale di caratteri dell'estensione del file, quindi è possibile utilizzare il punto interrogativo (?) jolly per cercare nel file. Il comando seguente cercherà il file con nome file 'Ciao' e l'estensione è lunga tre caratteri.

$ ls
$ ls ciao.???

Produzione:

Secondo l'output, esistono due file nella directory corrente che ha il nome "Hello" e l'estensione è lunga tre caratteri.

Uso di parentesi quadrate ([])

Diverse gamme di caratteri o gruppo di caratteri possono essere utilizzati tra parentesi quadrate ([]) per la ricerca di file in base all'intervallo.

Esempio -1: Cerca i file di qualsiasi estensione con due valori di intervalli

Il comando seguente cercherà qualsiasi file il cui nome contiene qualsiasi carattere all'interno di "a-p"e qualsiasi cifra all'interno"0-5'e l'estensione del file può essere qualsiasi carattere.

$ ls
$ ls [a-p0-5]*.*

Produzione:

Il seguente output mostra l'elenco di tutti i file che corrispondono al modello utilizzato nel comando.

Esempio 2: il file di ricerca inizia con un carattere particolare ed è seguito da un altro carattere

In questo esempio, il secondo comando cercherà i nomi file a partire da uno di questi personaggi [afgh] seguito dal personaggio 'O' con qualsiasi estensione.

$ ls
$ ls [afgh]*o*

Produzione:

Il seguente output mostra l'elenco di tutti i file che corrispondono al modello utilizzato nel comando.

Esempio-3: Cerca file di file con il valore del prefisso

Il seguente comando corrisponderà a quei file il cui nome inizia con 'fn' ed è seguito da un numero da 0 a 5.

$ ls fn [0-5]

Il seguente comando corrisponderà a quei file che contengono il nome "Hello" e l'estensione contiene qualsiasi carattere da T a Z.

$ ls ciao.[T-Z]*

Produzione:

Il seguente output mostra l'elenco di tutti i file che corrispondono al modello utilizzato nei comandi.

La classe dei caratteri può essere utilizzata nella terza staffa per abbinare il nome file o la stringa particolare nello script. Classi diverse che possono essere utilizzate nel modello hanno descritto di seguito.

Nome della classe Scopo
[:alfa:] Viene utilizzato per abbinare qualsiasi lettera maiuscola e minuscola ed equivalente a [A-Za-Z].
[: cifra:] È usato per abbinare qualsiasi cifre ed è equivalente a [0-9].
[: Alnum:] È usato per abbinare qualsiasi alfabeto e cifra. È equivalente a [a-za-z].
[:superiore:] È usato per abbinare solo con la maiuscolo e equivalente a [A-Z]
[:inferiore:] È usato per abbinare solo con la maiuscolo e equivalente a [A-Z]
[:vuoto:] Viene utilizzato per abbinare lo spazio e la scheda.
[:stampa:] Viene utilizzato per abbinare caratteri stampabili.
[: cntrl:] È usato per abbinare caratteri non stampabili.
[:spazio:] È usato per abbinare con lo spazio.
[: xdigit:] È usato per abbinare le cifre esadecimali.
[: ASCII:] È usato per abbinare i caratteri ASCII.
[:parola:] È usato per caratteri alfanumerici tra cui sottoline (_).

Gli usi di quattro classi per lo più usati hanno spiegato nei seguenti quattro esempi.

Esempio-1: Uso di [: Alpha:] in Bash Script

Il seguente script verificherà che l'input prelevato dall'utente contenga solo caratteri alfabetici.

#!/Bin/Bash
echo -n "Qual è il tuo nome? "
# Assegna il valore di input alla variabile
Leggi il nome
# Controllare il valore di input contiene solo l'alfabeto
if [["$ name" = ~ ^[[: alpha:]]]; Poi
echo "Il tuo nome è $ nome."
altro
Echo "ENTRA il solo carattere alfabetico."
fi

Produzione:
Il seguente output mostra il messaggio per input non valido e valido.

Esempio-2: Uso di [: Digit:] in Bash Script

Il seguente script verificherà che l'input prelevato dall'utente contenga solo caratteri numerici.

#!/Bin/Bash
echo -n "Inserisci il tuo ID:"
# Assegna il valore di input alla variabile
Leggi ID
# Imposta il valore ID
Id = "id- $ id"
# Imposta il modello usando [[: digit:]] classe
regex = "id-[[: digit:]]+"
# Controllare il valore di input contiene solo il numero
if [[$ id = ~ $ regex]]; Poi
echo "$ id è valido."
altro
echo "$ id non è valido."
fi

Produzione:

Il seguente output mostra il messaggio per input non valido e valido.

Esempio-3: Uso di [: Alnum:] in Bash Script

Il seguente script verificherà che l'input prelevato dall'utente contenga solo caratteri alfanumerici.

#!/Bin/Bash
echo -n "Inserisci il tuo indirizzo:"
# Assegna il valore di input alla variabile
Leggi addr
# Controllare il valore di input contiene solo l'alfabeto e il numero
if [[$ addr = ~ ^[[: Alnum:]]]; Poi
eco "L'indirizzo è valido."
altro
L'indirizzo eco "non è valido."
fi

Produzione:

Il seguente output mostra il messaggio per input non valido e valido.

Esempio-4: Uso di [: Upper:] in Bash Script

Il seguente script verificherà che l'input prelevato dall'utente contenga solo lettere maiuscole.

#!/Bin/Bash
echo -n "Inserisci il codice nella lettera maiuscola:"
# Assegna il valore di input alla variabile
Leggi il codice
# Controllare il valore di input contiene tutti gli ultimi maiuscoli
if [[$ code = ~ ^[[: Upper:]]]; Poi
Echo "Il codice è corretto."
altro
il codice eco "può contenere solo maiuscola."
fi

Produzione:

Il seguente output mostra il messaggio per input non valido e valido.

Conclusione

In questo tutorial sono stati mostrati gli usi di base dei caratteri jolly per la ricerca di file nel terminale e la convalida utilizzando lo script bash. Spero che gli esempi mostrati qui aiuteranno gli utenti Linux a scrivere correttamente i modelli di espressione per abbinare qualsiasi contenuto per scopi diversi.