Je viens de commencer à apprendre sed. Je veux extraire et imprimer les caractères entre les délimiteurs> et <. Voici le texte dans mon fichier de données:Comment extraire des caractères entre les délimiteurs en utilisant sed?
<span id="ctl00_ContentPlaceHolder1_lblRollNo">12029</span>
<br /><b>Engineering & IT/Computer Science</b><br />
<div id="ctl00_ContentPlaceHolder1_divEngITMerit">
<span id="ctl00_ContentPlaceHolder1_lblEngITSelListNo">3rd Provisional Selection List</span>
<tr><td style='width: 200px' class='TblTRData'>IT/Computer Science/Software</td><td style='width: 150px'class='TblTRData'>7 (out of 471)</td><td style='width: 325px'class='TblTRData'>Selected in MS COMPUTER SCIENCE</td></tr>
Name:
<span id="ctl00_ContentPlaceHolder1_lblName">SIDRA SHAHID</span>
Father Name:
<span id="ctl00_ContentPlaceHolder1_lblFatherName">SHAHID RAFEEQ AHMAD</span>
J'ai écrit la commande:
sed -n -e '/^[^>]*>\([^<]*\)<.*/s//\1/p' myfile.txt
Le problème est qu'il renvoie le texte entre une partie de la> <. Par exemple, il imprime , mais non sélectionné dans sélectionné dans MS SCIENCE INFORMATIQUE. Qu'est-ce que je fais mal?
vous devriez utiliser un analyseur XML à la place. Que faire si vous avez des entités à l'intérieur? – Benoit
Je vais laisser tomber ce lien dans les commentaires au cas où quelqu'un trouverait utile: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/ 1732454 # 1732454 – Johnsyweb