Sed - substitution multi-ligne
Salut,
J'aimerais extraire une chaîne d'un fichier HTML. Problème : elle est entre deux balises <th> et </th> et je ne peux savoir à quelle ligne (cela peut en plus changer). J'avais donc pensé à identifier la ligne juste avant. Comme je n'ai rien pigé au sed multi-ligne, j'ai eu l'idée de transformer mon fichier HTML en un fichier mono-ligne avec tr -d '\r\n' et faire du sed classique ... Sauf que la variable $country contient tout le fichier HTML ... Pourtant j'ai bien utilisé le \(.*\) et \1 :(
source.html
Code:
1 2 3 4 5 6
| ......
<td>Country</td>
<th>France</th>
....... |
script.sh
Code:
1 2 3
| tr -d '\r\n' < ./source.html > ./source_temp.html
country=$(sed 's|<td>Country</td><th>\(.*\)</th>|\1|' ./source_temp.html)
echo $country |
Merci d'avance.