GNU/Linux >> Tutoriels Linux >  >> Linux

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

Caractères génériques (également appelés métacaractè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 des fichiers correspondant à un critère donné, de manière réceptive.

Lire 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 jokers 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 avec soin le 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 correspond à tous les fichiers dont le nom commence par l (qui est le préfixe) et se terminant 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 correspond à tous les fichiers dont le nom commence par l suivi d'un seul caractère et se terminant par st.sh (qui est le suffixe).

$ ls l?st.sh	

4. La commande ci-dessous correspond à tous les fichiers dont le nom commence 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 un critère de correspondance de nom de fichier complexe, 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 correspond aux 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 ces exemples, seuls les noms de fichiers commençant par l'un de ces caractères [clst] suivi de l'un de ces [io] puis n'importe quel caractère unique, suivi d'un t et enfin, une ou plusieurs occurrences de n'importe quel caractère seront listées.

$ ls
$ ls [clst][io]?t*

8. Ici, les noms de fichiers précédés d'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 le jeu de caractères 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 correspond aux noms de fichiers commençant par users-i , suivi d'un chiffre, d'une lettre minuscule ou majuscule 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-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 nier 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 caractère.

$ 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 avoir une bonne compréhension du fonctionnement des 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 vers un répertoire spécifique ou différent sous Linux
  2. 3 façons de supprimer tous les fichiers d'un répertoire sauf un ou quelques fichiers avec des extensions
  3. 10 astuces utiles pour écrire des scripts Bash efficaces sous Linux
  4. Comment utiliser Awk et des expressions régulières pour filtrer du texte ou une chaîne dans des fichiers

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


Linux
  1. 10 exemples pratiques d'utilisation de la commande scp

  2. Commande cp sous Linux :7 exemples pratiques

  3. Commande d'arrêt de Linux :5 exemples pratiques

  4. 5 exemples pratiques de la commande dd sous Linux

  5. Exemples d'utilisation de la commande dmsetup sous Linux

12 exemples pratiques d'In Command sous Linux

Les 50 exemples pratiques de la commande SED sous Linux

15 exemples pratiques de commande Rsync sous Linux

5 exemples pratiques de la commande Tail sous Linux

commande echo sous Linux :7 exemples pratiques

Commande Ping pratique dans des exemples Linux