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 [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]