Sed subsitution dans un texte entre > et <

Pims83 Messages postés 21 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je cherche comme le titre in dique a faire une substituion qui mest plutot difficile
Aller des exemple et ce sera plus claire

ex transformer tatatat>toto<tatatatata en tatatat>t o t o <tatatatata

pour arriver à faire ca :

tataerq>bonjour comment ca va<tazrgthyjyjuht>bien et toi ?<tataiopkli_hjt>pas trop mal !<dhfgbrthtatatat>lol<tatatatazerdfcef>

tataerq>b o n j o u r c o m m e n t c a v a <tazrgthyjyjuht>b i e n e t t o i ? <tataiopkli_hjt>p a s t r o p m a l ! <dhfgbrthtatatat>l o l <tatatatazerdfcef>

ce dernière exemple pour dire que le motif peut ce répeter plusieur fois par ligne

alors j ais essayer differente methode à base de sed :

echo $texte | sed 's|\(.*>\).*\(<.*\)|\1& \2|'

Merci de votre coup de pouce
Configuration: Opteron 165 / DFI Lan party Nf4 Ultra / 2 Go / Radeon HD 3870 / raid 5 4TO

2 réponses

  1. Pims83 Messages postés 21 Statut Membre
     
    Je vien de trouver une solution mais plutot lourde:

    var="tataerq>bonjour comment ca va<tazrgthyjyjuht>bien et toi ?<tataiopkli_hjt>pas trop mal !<dhfgbrthtatatat>lol<tatatatazerdfcef>"
    texte="";

    for i in $( echo $var | sed 's/>/>\n/g' | sed 's/</\n</g');
    do
    if [ "$(echo $i | grep "<" )" = "" ];
    then
    i=$(echo $i | sed 's/./& /g');
    fi;
    texte=${texte}$i;
    done;

    apparament ca marche ;D
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    [tmpfs]$ echo $C
    tataerq>bonjour comment ca va<tazrgthyjyjuht>bien et toi ?<tataiopkli_hjt>pas trop mal !<dhfgbrthtatatat>lol<tatatatazerdfcef>
    
    [tmpfs]$ cat prog.sed
    #n
    :z
    />$/ {
        1 !H
        1 h
        n
        s/./& /g
        H
        n
        $ !b z
        H
        g
        s/\n//g
        s/  //g
        p
    }
    
    [tmpfs]$ echo $C | sed 's/>/&\n/g;s/</\n&/g'| sed '$d' | sed -f prog.sed
    tataerq>b o n j o u r c o m m e n t c a v a <tazrgthyjyjuht>b i e n e t t o i ? <tataiopkli_hjt>p a s t r o p m a l ! <dhfgbrthtatatat>l o l <tatatatazerdfcef>
    
    [tmpfs]$

    ;-))
    0