Shell supprimer chaine de caractere
Résolu
zil
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
lendi -
lendi -
Bonjour à tous
c'est pour un script shell dans linux
soit une ligne d'un fichier texte:
<td class="cell"><a class="ref" href="/adresse/ljfio15" ><strong>1</strong></a></td>
je cherche à enlever la partie <a class="ref" href="/adresse/ljfio15">
j'ai essayé avec le commande cut mais le probleme est que l'adresse "/adresse/ljfio15" n'est pas toujours la meme, la longueur peut varier
est il possible de lui dire de tout enlever entre < et > ???
merci
Zil...
c'est pour un script shell dans linux
soit une ligne d'un fichier texte:
<td class="cell"><a class="ref" href="/adresse/ljfio15" ><strong>1</strong></a></td>
je cherche à enlever la partie <a class="ref" href="/adresse/ljfio15">
j'ai essayé avec le commande cut mais le probleme est que l'adresse "/adresse/ljfio15" n'est pas toujours la meme, la longueur peut varier
est il possible de lui dire de tout enlever entre < et > ???
merci
Zil...
A voir également:
- Shell supprimer chaine de caractere
- Supprimer rond bleu whatsapp - Guide
- Caractère ascii - Guide
- Classic shell - Télécharger - Personnalisation
- Caractère spéciaux - Guide
- Impossible de supprimer une page word - Guide
7 réponses
Salut,
$ var='<td class="cell"><a class="ref" href="/adresse/ljfio15" ><strong>1</strong></a></td>' $ echo $var | sed 's#<a [^>]*>##' <td class="cell"><strong>1</strong></a></td> $;-))
Salut
bon et maintenant je veux virer width="10%" d'une chaine
j'ai esayé sed 's#wi [^"]*>##'
mais ca ne marche pas donc je n'ai rien compris à Sed
puis je avoir une petite explication
merci
Zil...
bon et maintenant je veux virer width="10%" d'une chaine
j'ai esayé sed 's#wi [^"]*>##'
mais ca ne marche pas donc je n'ai rien compris à Sed
puis je avoir une petite explication
merci
Zil...
Re-
La syntaxe donnée plus haut n'est pas générique (du moins pas dans sa totalité), mais adaptée au cas présenté.
Il faut adapter la regex (expression régulière) à chaque cas...
Voir dans la FAQ : http://www.commentcamarche.net/faq/478 sed
Ensuite concernant le 'width="10%"', il faut savoir si c'est un cas isolé ou non, s'il le pourcentage risque de changer, s'il est tout seul sur la ligne, etc.
La syntaxe donnée plus haut n'est pas générique (du moins pas dans sa totalité), mais adaptée au cas présenté.
Il faut adapter la regex (expression régulière) à chaque cas...
Voir dans la FAQ : http://www.commentcamarche.net/faq/478 sed
Ensuite concernant le 'width="10%"', il faut savoir si c'est un cas isolé ou non, s'il le pourcentage risque de changer, s'il est tout seul sur la ligne, etc.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon je crois que
sed 's#wi.*"##'
fait l'affaire
mais je n'ai pas compris [^>] dans l'expression de jipicy
Zil...
sed 's#wi.*"##'
fait l'affaire
mais je n'ai pas compris [^>] dans l'expression de jipicy
Zil...
mais je n'ai pas compris [^>] dans l'expression
Les expressions régulières sont très gourmandes, et de ce fait pour reprendre l'expression ci-dessus :
sed 's#<a [^>]*>##'
si l'on avait écrit :
sed 's#<a .*>##'
le '.*>' aurait englobé tout ce qui suit le '<a ' jusqu'au dernier ">" rencontré sur la ligne. Donc il faut clairement signifier que l'on veut tout jusqu'au prochain ">" mais sans ">" à l'intérieur...
Les expressions régulières sont très gourmandes, et de ce fait pour reprendre l'expression ci-dessus :
sed 's#<a [^>]*>##'
si l'on avait écrit :
sed 's#<a .*>##'
le '.*>' aurait englobé tout ce qui suit le '<a ' jusqu'au dernier ">" rencontré sur la ligne. Donc il faut clairement signifier que l'on veut tout jusqu'au prochain ">" mais sans ">" à l'intérieur...