Retirer le début ou la fin d’une chaîne Variable:retirer le début ou la fin d’une chaîne
Objectif
Retirer la fin d’une chaîne de caractères.
Exemple
Retrait de l’extension d’un nom de fichier.
Initialisation de la variable fichier
$ fichier=rapport.docx
Première méthode (ksh, bash)
Utiliser les caractères de substitution de variables :
$ echo ${fichier%.*}
rapport
Le caractère % permet de retirer la partie la plus courte à droite correspondant à .*.
(cf. chapitre Aspects avancés de la programmation shell - Manipulation de variables)
Deuxième méthode
Utilisation de la commande expr :
$ expr $fichier : '\(.*\)\..*$'
rapport
La commande expr affiche la chaîne qui correspond au parenthésage.
(cf. chapitre Les expressions régulières - Exploitation des expressions régulières par les commandes)
Troisième méthode
Utilisation de la commande sed :
$ echo $fichier | sed 's/\.[ˆ.]*$//'
rapport
La partie extension est recherchée et remplacée par du vide.
(cf. chapitre Les expressions régulières - Exploitation des expressions régulières par les commandes)
Quatrième méthode
Utilisation de la fonction sub de awk et d’une expression régulière :
$ echo $fichier | awk '{ sub(/\..+$/,"",$0) ; print $0 }'
rapport
(cf. chapitre Le langage de programmation...