Comment extraire le nom de fichier et l'extension en bash

Comment extraire le nom de fichier et l'extension en bash

Bash est un puissant shell de ligne de commande qui est couramment utilisé dans les systèmes d'exploitation Linux et UNIX. Une tâche courante lorsque vous travaillez avec des fichiers dans Bash est d'extraire le nom de fichier et l'extension à partir d'un chemin de fichier. Cet article discutera de la façon d'extraire le nom de fichier et l'extension dans Bash et fournira des exemples de comment utiliser ces valeurs dans vos scripts.

Extraction du nom de fichier et de l'extension en bash

Il existe plusieurs façons d'extraire le nom de fichier et l'extension dans Bash, voici trois méthodes courantes:

  • Utilisation de la commande Basename
  • En utilisant l'expansion des paramètres
  • Utilisation de la variable IFS (Internal Field Separator)

1: Utilisation de la commande Basename

Le nom de base La commande renvoie le nom de fichier à partir d'un chemin de fichier et extrait le nom de fichier et l'extension. Vous pouvez utiliser le nom de base commande avec le -suffixe Option, qui supprime le suffixe spécifié du nom de fichier comme dans le code indiqué ci-dessous:

#!/ bac / bash
# Exemple de chemin de fichier
file_path = "/ path / to / file.SMS"
# Extraire le nom de fichier
filename = $ (basename $ file_path)
# Extension d'extraction
extension = "$ nom de fichier ## *. "
Echo "Nom de fichier: $ nom de fichier"
Echo "Extension: $ Extension"

2: en utilisant l'expansion des paramètres

Le extension des paramètres La syntaxe est une caractéristique puissante de Bash qui vous permet de manipuler des cordes. Pour extraire le nom de fichier et l'extension en utilisant l'expansion des paramètres, vous pouvez utiliser le $ paramètre ## word Syntaxe, qui supprime la plus longue correspondance du modèle spécifié du début du paramètre comme dans le code ci-dessous:

#!/ bac / bash
# Exemple de chemin de fichier
file_path = "/ path / to / file.SMS"
# Extraire le nom de fichier
filename = "$ file_path ## * /"
# Extension d'extraction
extension = "$ nom de fichier ## *. "
Echo "Nom de fichier: $ nom de fichier"
Echo "Extension: $ Extension"

3: Utilisation de la variable IFS (Internal Field Séparateur)

Le Variable IFS est utilisé par bash pour diviser les chaînes en champs en définissant le Variable IFS au séparateur de chemin («/»). Vous pouvez extraire le nom de fichier et l'extension à partir d'un chemin de fichier via cette variable à l'aide du code indiqué ci-dessous:

#!/ bac / bash
# Exemple de chemin de fichier
file_path = "/ path / to / file.SMS"
# Définissez des ifs sur "/"
Ifs = "/" read -r -a parties <<< "$file_path"
# Extraire le nom de fichier
filename = "$ parties [-1]"
# Extension d'extraction
extension = "$ nom de fichier ## *. "
Echo "Nom de fichier: $ nom de fichier"
Echo "Extension: $ Extension"

Conclusion

L'extraction du nom de fichier et de l'extension à partir d'un chemin de fichier est une tâche courante lorsque vous travaillez avec des fichiers dans Bash. Cet article a discuté de trois méthodes courantes pour extraire le nom de fichier et l'extension dans Bash. En utilisant le nom de base commande, le extension des paramètres syntaxe, ou le Variable IFS, Vous pouvez extraire rapidement et facilement les valeurs de nom de fichier et d'extension à partir d'un chemin de fichier.