Sed et plus si affinités :p
Résolu
bkrqpzef
Messages postés
197
Date d'inscription
Statut
Membre
Dernière intervention
-
bkrqpzef Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
bkrqpzef Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerai faire quelques modifications de fichiers. J'ai environ 3000 pages html à modifier. J'aimerai supprimer tout ce qu'il y a à l'intérieur et garder uniquement ce qu'il y a entre <span class="classe"> et </span><br/>. Et je voudrai aussi concaténer tout ça dans un seul fichier de ce type :
<span class="classe"> texte 1 </span><br/>
<span class="classe"> texte 2 </span><br/>
<span class="classe"> texte 3 </span><br/>
Alors j'essaie de bidouiller tout ça avec la commande sed mais à dire vrai je me rend un peu fou. (Je découvre d'une certaine manière)
Si vous avez des idées, des techniques ou d'autres outils pour ce que j'aimerai faire, je suis preneur. :)
Merci à vous !!!!
J'aimerai faire quelques modifications de fichiers. J'ai environ 3000 pages html à modifier. J'aimerai supprimer tout ce qu'il y a à l'intérieur et garder uniquement ce qu'il y a entre <span class="classe"> et </span><br/>. Et je voudrai aussi concaténer tout ça dans un seul fichier de ce type :
<span class="classe"> texte 1 </span><br/>
<span class="classe"> texte 2 </span><br/>
<span class="classe"> texte 3 </span><br/>
Alors j'essaie de bidouiller tout ça avec la commande sed mais à dire vrai je me rend un peu fou. (Je découvre d'une certaine manière)
Si vous avez des idées, des techniques ou d'autres outils pour ce que j'aimerai faire, je suis preneur. :)
Merci à vous !!!!
A voir également:
- Sed et plus si affinités :p
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed supprimer ligne vide - Forum Linux / Unix
27 réponses
Incroyable.
Ca fonctionne maintenant sur Cygwin... Alors j'avoue ne plus rien comprendre... (déjà que c'était pas terrible)
Ca fonctionne maintenant sur Cygwin... Alors j'avoue ne plus rien comprendre... (déjà que c'était pas terrible)
Code Mandriva (copié/collé cette fois)
Le mystère reste entier ...
[eriksen@localhost Bureau]$ cat page.html <html> <head></head> <body> <span>�"'(-�_��)=^$�*iokl,;:</span> <span class="classe">bob</span> <div>�_&-"(��&)"(���)</div> <span class="classe">gilbert</span> <span>$^m$^lsm)=�(��</span> <span class="classe">norbert</span> <span>sqdsqdqdsqxc</span> <div>xfpqozqighpin</div> <p>$�qm*xqf�l</p> </body> [eriksen@localhost Bureau]$ sed -ns '\#<span class=.*</span><br/>#p' page.html [eriksen@localhost Bureau]$
Le mystère reste entier ...
Un grand merci à toi en tout cas. Tu viens de montrer que tu restes incollable sur sed. :p
Je ne pensais pas que cette commande pouvait être aussi importante. (Il se trouve que je vais en avoir besoin souvent)
Je vais travailler dessus ça a l'air vraiment trop pratique de s'y connaitre !!!
Merci encore et désolé pour ces mésaventures assez étranges...
Je ne pensais pas que cette commande pouvait être aussi importante. (Il se trouve que je vais en avoir besoin souvent)
Je vais travailler dessus ça a l'air vraiment trop pratique de s'y connaitre !!!
Merci encore et désolé pour ces mésaventures assez étranges...
Donc pour la postérité :
Réponse :
Mais euh pas tout le temps et pas partout. A suivre... :p
Réponse :
sed -ns '\#<span class=.*</span><br/>#p' page.html
Mais euh pas tout le temps et pas partout. A suivre... :p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon il y a eu des complications........
Donc voilà, j'ai bidouillé sed pas mal et je viens de trouver mon bonheur avec :
Par contre là je suis à la recherche de la même commande, mais qui serait capable d'avoir 2 exceptions.
Du style "classe" OU "bateau".
J'ai pensé rapidement à
Mais euuuh il écrase à la première donc il ne reste pas de "bateau" alors en fait il enlève un peu tout...
Par exemple pour :
Comment garder "bateau" ET "classe".
Une idée svp ?
Merci :)
Donc voilà, j'ai bidouillé sed pas mal et je viens de trouver mon bonheur avec :
sed -i '/classe/!d' *.*(supprime toutes les lignes de tous les fichiers sauf celles où il y a "classe")
cat *.* > bkrqpzef(concatène tous les fichiers dans un seul)
Par contre là je suis à la recherche de la même commande, mais qui serait capable d'avoir 2 exceptions.
Du style "classe" OU "bateau".
J'ai pensé rapidement à
sed -i '/classe/!d *.* && sed -i '/bateau/!d *.*
Mais euuuh il écrase à la première donc il ne reste pas de "bateau" alors en fait il enlève un peu tout...
Par exemple pour :
chaise bateau bob classe
Comment garder "bateau" ET "classe".
Une idée svp ?
Merci :)