Recherche de site Web

10 exemples pratiques utilisant des caractères génériques pour faire correspondre les noms de fichiers sous Linux


Les caractères génériques (également appelés méta-caractères) sont des symboles ou des caractères spéciaux qui représentent d'autres caractères. Vous pouvez les utiliser avec n'importe quelle commande telle que la commande ls ou la commande rm pour lister ou supprimer les fichiers correspondant à un critère donné, de manière réceptive.

Lisez aussi : 10 exemples pratiques utiles sur le chaînage des opérateurs sous Linux

Ces caractères génériques sont interprétés par le shell et les résultats sont renvoyés à la commande que vous exécutez. Il existe trois principaux caractères génériques sous Linux :

  • Un astérisque (*) – correspond à une ou plusieurs occurrences de n'importe quel caractère, y compris aucun caractère.
  • Point d'interrogation (?) – représente ou correspond à une seule occurrence de n'importe quel caractère.
  • Caractères entre crochets ([ ]) – correspond à toute occurrence de caractère entre crochets. Il est possible d'utiliser différents types de caractères (caractères alphanumériques) : chiffres, lettres, autres caractères spéciaux etc.

Vous devez choisir soigneusement quel caractère générique utiliser pour faire correspondre les noms de fichiers corrects : il est également possible de tous les combiner en une seule opération, comme expliqué dans les exemples ci-dessous.

Comment faire correspondre les noms de fichiers à l'aide de caractères génériques sous Linux

Pour les besoins de cet article, nous utiliserons les fichiers suivants pour illustrer chaque exemple.

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

1. Cette commande recherche tous les fichiers dont le nom commence par l (qui est le préfixe) et se termine par une ou plusieurs occurrences de n'importe quel caractère.

ls -l l*	

2. Cet exemple montre une autre utilisation de * pour copier tous les noms de fichiers préfixés par users-0 et se terminant par une ou plusieurs occurrences de n'importe quel caractère.

mkdir -p users-info
ls users-0*
mv -v users-0* users-info/	# Option -v flag enables verbose output

3. La commande suivante recherche tous les fichiers dont le nom commence par l suivi d'un caractère unique et se termine par st.sh (qui est le suffixe ).

ls l?st.sh	

4. La commande ci-dessous correspond à tous les fichiers dont les noms commencent par l suivi de l'un des caractères entre crochets mais se terminant par st.sh .

ls l[abdcio]st.sh 

Comment combiner des caractères génériques pour faire correspondre les noms de fichiers sous Linux

Vous pouvez combiner des caractères génériques pour créer des critères de correspondance de nom de fichier complexes, comme décrit dans les exemples suivants.

5. Cette commande correspondra à tous les noms de fichiers préfixés par deux caractères quelconques suivis de st mais se terminant par une ou plusieurs occurrences de n'importe quel caractère.

ls
ls ??st*

6. Cet exemple fait correspondre les noms de fichiers commençant par l'un de ces caractères [clst] et se terminant par une ou plusieurs occurrences de n'importe quel caractère.

ls
ls [clst]*

7. Dans cet exemple, seuls les noms de fichiers commençant par l'un de ces caractères [clst] suivi de l'un de ces [io], puis de n'importe quel caractère unique. caractère, suivi d'un t et enfin, une ou plusieurs occurrences de n'importe quel caractère seront répertoriées.

ls
ls [clst][io]?t*

8. Ici, les noms de fichiers préfixés par une ou plusieurs occurrences de n'importe quel caractère, suivis des lettres tar et se terminant par une ou plusieurs occurrences de n'importe quel caractère seront supprimés.

ls
rm *tar*
ls

Comment faire correspondre les caractères définis sous Linux

9. Voyons maintenant comment spécifier un jeu de caractères. Considérez les noms de fichiers ci-dessous contenant des informations sur les utilisateurs du système.

ls

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

Cette commande correspondra à tous les fichiers dont le nom commence par users-i, suivi d'un chiffre, d'une lettre minuscule ou d'un chiffre, puis d'un chiffre et se termine par une ou plusieurs occurrences de n'importe quel caractère.

ls users-[0-9][a-z0-9][0-9]*

La commande suivante fait correspondre les noms de fichiers commençant par users-i, suivi d'un chiffre, d'une lettre ou d'un chiffre minuscule ou majuscule, puis d'un chiffre et se termine par une ou plusieurs occurrences de n'importe quel caractère.

ls users-[0-9][a-zA-Z0-9][0-9]*

Cette commande qui suit correspondra à tous les noms de fichiers commençant par users-i, suivi d'un chiffre, d'une lettre minuscule ou majuscule ou d'un chiffre, puis d'une lettre minuscule ou majuscule et se termine par une ou plusieurs occurrences de N'importe quel caractère.

ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Comment annuler un jeu de caractères sous Linux

10. Vous pouvez également annuler un ensemble de caractères en utilisant le symbole !. La commande suivante répertorie tous les noms de fichiers commençant par users-i, suivi d'un nombre, de tout caractère de nom de fichier valide à l'exception d'un nombre, puis d'une lettre minuscule ou majuscule et se termine par une ou plusieurs occurrences de n'importe quel nom de fichier. personnage.

ls users-[0-9][!0-9][a-zA-Z]*

C'est tout pour le moment! Si vous avez essayé les exemples ci-dessus, vous devriez maintenant bien comprendre comment fonctionnent les caractères génériques pour faire correspondre les noms de fichiers sous Linux.

Vous aimerez peut-être également lire ces articles suivants qui montrent des exemples d'utilisation de caractères génériques sous Linux :

  1. Comment extraire des fichiers Tar dans un répertoire spécifique ou différent sous Linux
  2. 3 façons de supprimer tous les fichiers d'un répertoire à l'exception d'un ou quelques fichiers avec des extensions
  3. 10 conseils utiles pour écrire des scripts Bash efficaces sous Linux
  4. Comment utiliser Awk et les expressions régulières pour filtrer du texte ou une chaîne dans des fichiers

Si vous avez quelque chose à partager ou une ou plusieurs questions à poser, utilisez le formulaire de commentaires ci-dessous.