Comment extraire le nom de base de fichiers sans chemin et extension en bash

Comment extraire le nom de base de fichiers sans chemin et extension en 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 les composants de répertoire leader. 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 de chemin et extension en bash

Pour extraire le nom de basen d'un fichier sans son chemin et à son extension, nous pouvons utiliser la commande de nom de base en conjonction avec la fonction de substitution des paramètres de BASH. La commande Basename renvoie le dernier composant d'un chemin d'accès, qui dans notre cas serait le nom de fichier avec son extension. Cependant, en spécifiant l'option de suffixe, nous pouvons éliminer l'extension à partir du nom du fichier, voici un exemple de code bash:

#!bac / bash
filepath = / home / aaliyan / bash3.shot
S = $ (Basename $ 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.shot". 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 des paramètres supprime l'extension du nom du fichier en supprimant la correspondance la plus courte possible de n'importe quel nombre de caractères suivis d'un point en utilisant "%.* ". La chaîne résultante, «BASH3», est ensuite imprimée à la console à l'aide de la commande echo:

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

#!bac / bash
filepath = / home / aaliyan / bash3.shot
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.shot". Le script utilise ensuite la fonction d'extension des paramètres de Bash deux fois pour extraire le nom de base du fichier sans son chemin et à son extension. Plus précisément, la première extension des paramètres supprime le chemin du nom du nom de fichier en supprimant la plus longue correspondance possible de n'importe quel nombre de caractères suivis d'une barre oblique en utilisant "## /".

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

Conclusion

Extraire le nom de base d'un fichier sans son chemin et à l'extension est une tâche courante dans les scripts de bash. En utilisant la commande Basename en combinaison avec la substitution des paramètres et les fonctionnalités d'expansion des paramètres de Bash, nous pouvons facilement réaliser cette tâche. Cela peut être utile lorsque vous travaillez avec des noms de fichiers dans des scripts, par exemple, lorsque vous renomiez des fichiers ou effectuant des opérations sur des fichiers avec des noms similaires.