Re: [linux] sed scripting

2003-03-14 Par sujet Pascal Bleser
Jean-Francois Dive wrote: excellent tiens, je ne connaissais pas le -p , bon ca, bon ca.. Yeps ;-) En fait, j'ai fait une petite erreur: -n = "while (<>) { ... }" -p = "while (<>) { ... ; print $_; }" Donc -p == -n + print $_ ;-) Un truc plutôt génial aussi, c'est -i : perl -p -i.old -e 's/foo

Re: [linux] sed scripting

2003-03-14 Par sujet Jean-Francois Dive
excellent tiens, je ne connaissais pas le -p , bon ca, bon ca.. On Fri, 2003-03-14 at 08:58, Pascal Bleser wrote: > Alexandre Dulaunoy wrote: > > sed ne travaille que ligne par ligne. Le \n n'est pas dans le buffer > > pour les patterns. > > En effet. > > Pour le problème, donné, voici un moy

Re: [linux] sed scripting

2003-03-14 Par sujet Alexandre Dulaunoy
On Thu, 13 Mar 2003, Pascal Bleser wrote: > > Par contre, certains sed (gnu sed) possède un espace qui peut être > > illimité : > > > > sed -n 'H;$g;$s/\n//gp' brol > > C'est quoi ce truc ? lol > H;$g;$s/ ? C'est un trick de merde illisible à la sed ;-) Bon j'explique (de mémoire, je me

Re: [linux] sed scripting

2003-03-13 Par sujet Pascal Bleser
Alexandre Dulaunoy wrote: sed ne travaille que ligne par ligne. Le \n n'est pas dans le buffer pour les patterns. En effet. Pour le problème, donné, voici un moyen très simple en Perl: perl -pe 'chomp' destination Petite explication: -p: assume un "while (<>) { ... }" autour de l'expression -

Re: [linux] sed scripting

2003-03-13 Par sujet Alexandre Dulaunoy
sed ne travaille que ligne par ligne. Le \n n'est pas dans le buffer pour les patterns. Par contre, certains sed (gnu sed) possède un espace qui peut être illimité : sed -n 'H;$g;$s/\n//gp' brol Donc sed est bien pour le ligne à ligne mais pas très performant pour les multilignes...

[linux] sed scripting

2003-03-13 Par sujet Fred
Hello, J'ai un ptit problème avec sed. J'aimerai éliminer d'un fichier initial tous les caractères de retour à la ligne qui s'y trouvent - les \n. D'après ce que j'ai lu des pages infos sur sed, une commande comme: sed -e 's/\n//g' < file.in > file.out devrait suffir... mais ça n'a pas l'ai