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

Re: sed: remplacer les dernieres lignes de fichiers par un mot...




On 23 Dec 2008, at 20:34, Jacques L'helgoualc'h wrote:

Jacques L'helgoualc'h a écrit, mardi 23 décembre 2008, à 18:53 :
[...] chercher l'émulation de tail.

Tout bêtement dans « info sed »...

Il me semble que dans les trésors de http://sed.sf.net on peut trouver
une méthode de fenêtre glissante FIFO qui permet, appliquée ici,

- de stocker les 25 premières lignes ;

- puis écrire la première, l'effacer et ajouter la nouvelle en queue ;

- et faire la substitution demandée, une fois avalée la dernière ligne...

sed -ne '1h;2,25H;26,${H;g;P;s/^[^\n]*\n//;h};$aLe mot de la fin.'
.........<- un -> <--------- deux ----------> <----- trois ----->

66 caractères, contre 79 avec Perl :P

Personne n'a mentionné awk (pas testé):

awk '{r[i++%25]=$0;if(i>=25)print r[i%25]}END{print"Le mot de la fin"}'

C'est plus long que sed mais au moins c'est lisible...
C'est moins long que perl *et* c'est lisible :)

Joyeux noël!

--
Arnaud


Reply to: