Sed - 3 questions

Résolu
doudou -  
 doudou -
Bonjour,

1 - Afin de vérifier mon code HTML, je voudrais pouvoir retrouver les chaînes de caractères qui contiennent le caractère = et qui sont suivies par un caractère différent de "

Ex chaîne incorrecte : class=small ou class=small"
Ex chaîne correcte : class="small"

2 - Dans le même ordre d'idée j'aimerai pouvoir retrouver les chaînes qui contiennent =" qui sont suivis d'une chaine quelconque et qui ne se terminent pas par "

Ex chaîne incorrecte : class="small

3 - Dans un gros fichier HTML, à coup de copier/coller j'ai commis une faute qui existe 1 millier de fois. j'aimerai pouvoir la corriger d'un coup :

Ex chaine incorrecte : <a name="E1"</a>
Il me faut ajouter > derrière le deuxième "
Ex chaîne correcte : <a name="E1"></a>

NB, je ne peux pas remplacer toutes les chaînes </a> par ></a> certaines sont correctes...
J'aimerai quelque chose du type :
remplacer toutes les chaînes qui contiennent
names="
suivies d'une chaine quelconque et qui se terminent par un autre "
lui-même non suivi de >

Ben si c'est possible un grand MERCI d'avance !!!
Configuration: Linux
Firefox 3.5.2

3 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    2 - Dans le même ordre d'idée j'aimerai pouvoir retrouver les chaînes qui contiennent =" qui sont suivis d'une chaine quelconque et qui ne se terminent pas par "
    Mais qui se termine par quoi alors ? Parce il faut bien un élément quelconque de comparaison ;-\

    Le mieux serait que tu affiches un bout de ton code html avec les différents exemples incorrects et le même avec les exemples corrigés...

    Pour le #3, ceci devrait faire l'affaire déjà :

    sed 's#"</a#"></a#'
    ;-))
    0
    1. doudou
       
      Déjà MERCI jipicy !

      Je fais un résumé, j'avais :

      <a name="E1"</a>
      <a name="E1P10"</a>
      <a name="E1P10CS"</a>
      <a class=small href="./Ethique.html#E1">
      <a class="small href="./Ethique.html#E1P10">
      <a class=small" href="./Ethique.html#E1P10CS">
      <a class="small" href="./Ethique.html#N2" title="N2">N2</a>

      Donc c'est OK pour le #3 :

      # sed 's#"</a#"></a#' ess

      [ J'ai bien :

      <a name="E1"></a>
      <a name="E1P10"></a>
      <a name="E1P10CS"></a>
      <a class=small href="./Ethique.html#E1">
      <a class="small href="./Ethique.html#E1P10">
      <a class=small" href="./Ethique.html#E1P10CS">
      <a class="small" href="./Ethique.html#N2" title="N2">N2</a>

      C'est SUPER ! ça m'économise une demi-journée de travail ! La prochaine fois je ferai gaffe avant de faire des copier/coller à la chaïne !

      Pour les 3 derniers, je l'ai fait sous VI :
      :1,$s/class=small /class="small" /g
      :1,$s/class=small" /class="small" /g
      :1,$s/class="small /class="small" /g

      Ce n'est pas du grand art comme toi :) mais ça marche !

      Donc le sujet est [Résolu]

      Encore MERCI et bon dimanche !
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    [tmpfs]$ cat plop
    <a name="E1"</a>
    <a name="E1P10"</a>
    <a name="E1P10CS"</a>
    <a class=small href="./Ethique.html#E1">
    <a class="small href="./Ethique.html#E1P10">
    <a class=small" href="./Ethique.html#E1P10CS">
    <a class="small" href="./Ethique.html#N2" title="N2">N2</a>
    
    [tmpfs]$ sed 's#"</a#"></a#;s/=small \|="small \|=small" /="small" /' plop
    <a name="E1"></a>
    <a name="E1P10"></a>
    <a name="E1P10CS"></a>
    <a class="small" href="./Ethique.html#E1">
    <a class="small" href="./Ethique.html#E1P10">
    <a class="small" href="./Ethique.html#E1P10CS">
    <a class="small" href="./Ethique.html#N2" title="N2">N2</a>
    
    [tmpfs]$
    ;-))
    0
  3. doudou
     
    Tout bonnement ÉPOUSTOUFLANT !
    :-)))
    MERCI
    0