Imaginez que dans un programme vous souhaitiez récupérer dans une variable certains éléments d’une ligne du genre :
/Mes Documents/Mon Dossier/html/images/1 truc AsseZ tordu *.gif *.jpg *.jpeg
Plus précisement, vous souhaitez récupérer *.gif *.jpg *.jpeg, alors je vous conseille d’utiliser sed et les expressions régulières. La syntaxe en script shell serait du type :
Allez, j’explique : je demande d’executer sed sur la chaine passée dans le pipe et d’informer sed qu’il doit rechercher dans cette chaine toutes les occurences commençant par un / au début de la ligne et contenant soit des / soit des espaces soit des caractères alpha-numériques sans respect de la casse, et finissant par le premier mot trouvé qui commence par un espace et ne contient pas l’un des caractères évoqué précedement (dans notre cas, l’étoile). Lorsque sed a trouvé cette occurence il la remplace (le s qui indique substitute) par rien (en gros il la supprime), ce qui fait qu’il ne reste que *.gif *.jpg *.jpeg !
Faites un echo de sVariable pour voir :
Si vous souhaitez l’inverse et récupérer le chemin, faites la commande suivante :
Essayez et vous allez tout comprendre...