[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [SHELL] remplacer un caractère dans une sous-chaine



Le 20/12/07, Jacques L'helgoualc'h<lhh+no_spam@free.fr> a écrit :
> Sylvain Sauvage a écrit, jeudi 20 décembre 2007, à 16:30 :
> [...]
> >   Pour sed, les adresses ne fonctionnent que sur plusieurs
> > lignes.
>
> Oui,
>
> >   En revanche, la négation :
> >
> > >    /\([^Dd]...\|[dD]\([^a]..\|a\([^t].\|t[^e]\)\)\)\[/,/\]/y/ /_/
>
> On peut tourner  la chose autrement : Sed  connaît la négation /motif/!,
> et on peut emboîter des blocs entre accolades.
>
> >   Mais ça devient très lourd à gérer avec sed. Il vaudrait
> > vraiment passer à un vrai langage (Ruby, Perl???).
>
> Sed est Turing-complet, mécréant !
>
> >   Pour me pardonner d???avoir dit une ânerie :
>
> > #!/usr/bin/ruby
>
> Pfff. Sed peut aisément
>
>  1/ Isoler les motifs à traiter entre deux lignes debut, fin :
>
>  sed -e 's/\([a-z]\+\[[^]]*\])/BALISE_debut\n\1\nBALISE_fin\n/ig'
>
>  2/ Traiter uniquement les susdits motifs :
>
>  sed -e '/BALISE_debut$/,/^BALISE_fin$/{# Dans le bloc,
>     /BALISE_/!{# ne pas traiter les bornes,
>        /^\(truc\|machin\)/!{# ni ces motifs.
>            s/[[:space:]]/_/g # traitement...
>        }
>     }
>  }'
>
>  3/ Recoller les morceaux... (en exercice :)
>
> --
> Jacques L'helgoualc'h
>
>
> --
> Lisez la FAQ de la liste avant de poser une question :
> http://wiki.debian.net/?DebianFrench
> Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
> "Reply-To:"
>
> To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
>


Tout d'abord, je remercie tous ceux qui m'ont aidé.
Je ne pouvais pas modifier la source car je n'en ai pas les droits
(systèmes de production). Avec toutes vos indications, je pense
pouvoir réussir mon traitement d'ici la fin de journée.

Merci

Zelos


Reply to: