sed et les expressions régulières

14.08.2003 | Mis à jour le 20.08.2003 | marcori
1372 visiteurs  -  Aucun commentaire

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 :

sVariable=`echo "/Mes Documents/Mon Dossier/html/images/1 truc AsseZ tordu *.gif *.jpg *.jpeg" | sed -e 's/^\/[/a-zA-Z0-9 ]* //'`

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 :

echo ${sVariable}
*.gif *.jpg *.jpeg

Si vous souhaitez l’inverse et récupérer le chemin, faites la commande suivante :

sVariable=`echo "/Mes Documents/Mon Dossier/html/images/1 truc AsseZ tordu *.gif *.jpg *.jpeg" | sed -e 's/ \*\.[ a-zA-Z0-9\*\.]*//g'`

Essayez et vous allez tout comprendre...

 

Poster un nouveau commentaire


Modération de ce forum :

Ce forum est modéré à priori : votre contribution n'apparaîtra qu'après avoir été validée par un administrateur du site.


Emoticones :

(Pour insérer un émoticone, cliquez simplement sur l'image.)

:Thumbs::aime::bof::clindoeil::diable::en_colere::etoile::exclamation::fleur::interrogation::langue::lol::lunettes::mouai::pas_content::pleure_de_rire::rigolo::sourire::surprit::triste::xtra:

Titre :

Texte de votre message :

(Pour créer des paragraphes, laissez simplement des lignes vides.)


Lien hypertexte (optionnel)

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d'informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)


Qui êtes-vous ? (optionnel)


Articles les plus consultés

Téléchargez Firefox !

Libricks.org est motorisé par le logiciel libre Spip 1.8.3 associé au squelette graphique BliP 0.91

16 rubriques ... 30 articles ... 18 commentaires ... 28 sites référencés ... 50 visiteurs par jour (99041 au total)

Haut de page | XHTML 1.0 | CSS 2