Bonjour,
Je n’ai pas trouvé de titre plus explicite, mais ça doit être l’habitude d’apprendre des regexp (Agaaa…)
Bref, pour l’instant, pour vous donner une idée voici un petit script à faire tourner :
[code]#!/bin/bash
#script test
var="<img src=“http://imgs.xkcd.com/comics/secretary_part_1.png” title=“The blueprints for the Department of the Internet offices call for Ceiling Cat-themed sprinkler heads.” alt=“Secretary: Part 1” />
"
#je souhaite récupérer les 3 champs src, title et alt :
#pour l’instant j’utilise sed, mais j’ai l’impression que c’est bourrin, et en plus ça ne fonctionne pas
sl=echo | tr '\012' '\001'
src=echo $var | sed -e "s${sl}=\"[^\"]*\"${sl}${sl}"
title=echo $var | sed -e "s${sl}=\"[^\"]*\"${sl}${sl}" | sed -e "s${sl}=\"[^\"]*\"${sl}${sl}"
alt=echo $var | sed -e "s${sl}=\"[^\"]*\"${sl}${sl}" | sed -e "s${sl}=\"[^\"]*\"${sl}${sl}" | sed -e "s${sl}=\"[^\"]*\"${sl}${sl}"
echo "var = "$var
echo "src = "$src
echo "title = "$title
echo "alt = "$alt[/code]
Voilà pour l’idée. Le problème, c’est que j’ai le résultat exactement inverse de ce que je souhaites. En l’occurence, il me faudrait inverser l’expression ="[^"]", mais je ne vois pas comment utiliser ! avec l’option s.
j’ai tenté des choses comme
sed -n ${sl}="[^"]"${sl}d
ou avec p, encore… mais j’ai ceci comme erreur, lorsque je n’utilise pas s :
sed: -e expression n°1, caractère 1: commande inconnue: `'
En cherchant sur divers forum, tuto, etc, il y a bien expliqué comment faire une négation, mais j’ai des erreurs, lorsque je tente plusieurs combinaisons de ! dans la commande s.
Edit : petite erreur de rien du tout… hum. Je corrige le script, il devait pas être très compréhensible