10 esempi pratici di utilizzo dei caratteri jolly per abbinare i nomi dei file in Linux

caratteri jolly (noti anche come metacaratteri) sono simboli o caratteri speciali che rappresentano altri caratteri. Puoi usarli con qualsiasi comando come ls comando o comando rm per elencare o rimuovere i file che corrispondono a un determinato criterio, in modo ricettivo.

Leggi anche: 10 utili esempi pratici sul concatenamento di operatori in Linux

Questi caratteri jolly vengono interpretati dalla shell e i risultati vengono restituiti al comando eseguito. Ci sono tre caratteri jolly principali in Linux:

  • un asterisco (*) – corrisponde a una o più occorrenze di qualsiasi carattere, incluso nessun carattere.
  • Punto interrogativo (?) – rappresenta o corrisponde a una singola occorrenza di qualsiasi carattere.
  • Caratteri tra parentesi ([ ]) – corrisponde a qualsiasi occorrenza di carattere racchiuso tra parentesi quadre. È possibile utilizzare diversi tipi di caratteri (caratteri alfanumerici): numeri, lettere, altri caratteri speciali ecc.

È necessario scegliere con attenzione quale carattere jolly utilizzare per abbinare i nomi file corretti: è anche possibile combinarli tutti in un'unica operazione come spiegato negli esempi seguenti.

Come abbinare i nomi dei file usando i caratteri jolly in Linux

Ai fini di questo articolo, utilizzeremo i seguenti file per dimostrare ogni esempio.

createbackup.sh list.sh lspace.sh speaker.sh. listopen.sh lost.sh rename-files.sh topprocs.sh. 

1. Questo comando corrisponde a tutti i file con nomi che iniziano con io (che è il prefisso) e termina con una o più occorrenze di qualsiasi carattere.

$ ls -l l* 
Elenca file con caratteri
Elenca file con caratteri

2. Questo esempio mostra un altro uso di * per copiare tutti i nomi di file preceduti da utenti-0 e termina con una o più occorrenze di qualsiasi carattere.

$ mkdir -p utenti-info. $ ls utenti-0* $ mv -v utenti-0* utenti-info/ # Opzione-v flag abilita l'output dettagliato. 
Elenca e copia tutti i file
Elenca e copia tutti i file

3. Il seguente comando corrisponde a tutti i file con nomi che iniziano con io seguito da un singolo carattere e termina con st.sh (che è il suffisso).

$ ls l? st.sh 
Abbina file con nome personaggio
Abbina file con nome personaggio

4. Il comando seguente corrisponde a tutti i file con nomi che iniziano con io seguito da uno qualsiasi dei caratteri nella parentesi quadra ma che termina con st.sh.

$ ls l[abdcio]st.sh 
Abbinare file con nomi
Abbinare file con nomi

Come combinare i caratteri jolly per abbinare i nomi dei file in Linux

È possibile combinare i caratteri jolly per creare criteri di corrispondenza di nomi di file complessi come descritto negli esempi seguenti.

5. Questo comando corrisponderà a tutti i nomi di file preceduti da due caratteri qualsiasi seguiti da ns ma termina con una o più occorrenze di qualsiasi carattere.

$ l. $ ls ??st*
Abbina i nomi dei file con il prefisso
Abbina i nomi dei file con il prefisso

6. Questo esempio corrisponde a nomi di file che iniziano con uno di questi caratteri [classe] e termina con una o più occorrenze di qualsiasi carattere.

$ l. $ ls [clst]*
Abbina file con caratteri
Abbina file con caratteri

7. In questi esempi, solo i nomi di file che iniziano con uno di questi caratteri [classe] seguito da uno di questi [io] e poi ogni singolo carattere, seguito da a T e infine, verranno elencate una o più occorrenze di qualsiasi carattere.

$ l. $ ls [clst][io]?t*
Elenca file con più caratteri
Elenca file con più caratteri

8. Qui, nomi di file preceduti da una o più occorrenze di qualsiasi carattere, seguiti dalle lettere catrame e che terminano con una o più occorrenze di qualsiasi carattere verranno rimossi.

$ l. $ rm *tar* $ l.
Rimuovi file con lettere di caratteri
Rimuovi file con lettere di caratteri

Come abbinare i caratteri impostati in Linux

9. Ora vediamo come specificare un set di caratteri. Considera i nomi dei file seguenti che contengono le informazioni sugli utenti del sistema.

$ ls utenti-111.list utenti-1AA.list utenti-22A.list utenti-2aB.txt utenti-2ba.txt. utenti-111.txt utenti-1AA.txt utenti-22A.txt utenti-2AB.txt utenti-2bA.txt. utenti-11A.txt utenti-1AB.list utenti-2aA.txt utenti-2ba.list. utenti-12A.txt utenti-1AB.txt utenti-2AB.list utenti-2bA.list. 

Questo comando abbinerà tutti i file il cui nome inizia con utenti-io, seguito da un numero, una lettera o un numero minuscolo, quindi un numero e termina con una o più occorrenze di qualsiasi carattere.

$ ls utenti-[0-9][a-z0-9][0-9]*

Il comando successivo corrisponde ai nomi dei file che iniziano con utenti-io, seguito da un numero, una lettera o un numero minuscolo o maiuscolo, quindi un numero e termina con una o più occorrenze di qualsiasi carattere.

$ ls utenti-[0-9][a-zA-Z0-9][0-9]*

Questo comando che segue corrisponderà a tutti i nomi di file che iniziano con utenti-io, seguito da un numero, una lettera o un numero minuscolo o maiuscolo, quindi una lettera minuscola o maiuscola e termina con una o più occorrenze di qualsiasi carattere.

$ ls utenti-[0-9][a-zA-Z0-9][a-zA-Z]*
Abbina i caratteri nei nomi dei file
Abbina i caratteri nei nomi dei file

Come negare un set di caratteri in Linux

10. Puoi anche negare un insieme di caratteri usando il ! simbolo. Il comando seguente elenca tutti i nomi di file che iniziano con utenti-io, seguito da un numero, qualsiasi carattere valido di denominazione del file tranne un numero, quindi una lettera minuscola o maiuscola e termina con una o più occorrenze di qualsiasi carattere.

$ ls utenti-[0-9][!0-9][a-zA-Z]*

È tutto per ora! Se hai provato gli esempi precedenti, ora dovresti avere una buona comprensione di come funzionano i caratteri jolly per abbinare i nomi di file in Linux.

Potresti anche leggere questi articoli seguenti che mostrano esempi di utilizzo dei caratteri jolly in Linux:

  1. Come estrarre i file Tar in una directory specifica o diversa in Linux
  2. 3 modi per eliminare tutti i file in una directory tranne uno o pochi file con estensioni
  3. 10 consigli utili per scrivere script Bash efficaci in Linux
  4. Come usare le espressioni awk e regolari per filtrare testo o stringhe nei file

Se hai qualcosa da condividere o una/e domanda/e da porre, usa il modulo di commento qui sotto.

Teachs.ru