Comment extraire le nom de base du fichier sans chemin ni extension dans Bash

Comment Extraire Le Nom De Base Du Fichier Sans Chemin Ni Extension Dans Bash



La commande basename est couramment utilisée dans Bash pour récupérer le nom de base d'un fichier ou d'un répertoire à partir d'un chemin donné en supprimant tous les composants de répertoire principaux. Cet article explorera comment extraire le nom de base d'un fichier sans son chemin et son extension à l'aide de bash.

Extraire le nom de base du fichier sans chemin ni extension dans Bash

Pour extraire le nom de base d'un fichier sans son chemin ni son extension, nous pouvons utiliser la commande basename conjointement avec la fonction de substitution de paramètres de bash. La commande basename renvoie le dernier composant d'un nom de chemin, qui dans notre cas serait le nom de fichier avec son extension. Cependant, en spécifiant l'option de suffixe, nous pouvons supprimer l'extension du nom de fichier, voici un exemple de code bash :

#!bin/bash
chemin du fichier = / maison / Aliyan / bash3.sh
s =$ ( nom de base $filepath )
écho ' ${s %.*} '

Le script bash ci-dessus définit une variable appelée ' chemin du fichier ' et lui attribue le chemin du fichier ' /home/aaliyan/bash3.sh “. Le script utilise ensuite la commande basename pour extraire le nom de base du fichier à partir du chemin du fichier et attribue le résultat à une variable appelée 's'.







La deuxième extension de paramètre supprime l'extension du nom de fichier en supprimant la correspondance la plus courte possible de n'importe quel nombre de caractères suivi d'un point à l'aide de '%.*'. La chaîne résultante, 'bash3', est ensuite imprimée sur la console à l'aide de la commande echo :





Une autre façon d'extraire le nom de base d'un fichier sans son chemin d'accès et son extension consiste à utiliser l'extension de paramètre sans utiliser la commande basename, ci-dessous l'exemple de code bash qui utilise la méthode d'extension de paramètre pour obtenir le nom de base d'un fichier sans fichier chemin et extension de fichier :





#!bin/bash
chemin du fichier = / maison / Aliyan / bash3.sh
s = ${filepath##*/}
écho ' ${s %.*} '

Il s'agit d'un script bash qui définit une variable appelée 'filepath' et lui attribue la valeur ' /home/aaliyan/bash3.sh “. Le script utilise ensuite la fonction d'expansion des paramètres de bash deux fois pour extraire le nom de base du fichier sans son chemin ni son extension. Plus précisément, la première extension de paramètre supprime le chemin du nom de fichier en supprimant la correspondance la plus longue possible de n'importe quel nombre de caractères suivi d'une barre oblique à l'aide de '##/'.

La chaîne résultante, ' bash3.sh » est alors affecté à une variable appelée « s ». La deuxième extension de paramètre supprime l'extension du nom de fichier en supprimant la correspondance la plus courte possible de n'importe quel nombre de caractères suivi d'un point en utilisant '%.'. La chaîne résultante, 'bash3', est ensuite imprimée sur la console à l'aide de la commande echo :



Conclusion

L'extraction du nom de base d'un fichier sans son chemin ni son extension est une tâche courante dans les scripts bash. En utilisant la commande basename en combinaison avec les fonctionnalités de substitution et d'extension de paramètres de bash, nous pouvons facilement accomplir cette tâche. Cela peut être utile lorsque vous travaillez avec des noms de fichiers dans des scripts, par exemple, lorsque vous renommez des fichiers ou effectuez des opérations sur des fichiers portant des noms similaires.