Sommaire

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 Les bases de la programmation shell - Les variables utilisateur)

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 awk - Fonctions intégrées)

Cinquième méthode ...