njko a écrit :
Salut la liste!

Un petit message car je galère avec sed....
Je souhaiterais supprimer les 25 dernières lignes de plusieurs fichiers,
et y mettre à la place un simple mot.

sed veut dire "stream editor", c'est pour éditer un flux, et par définition, un flux, on ne peut pas savoir s'il est bientôt fini ou pas, on s'en aperçoit quand il est tari...
Quand sed lit une ligne, "il" ne peut donc pas savoir combien il en reste dans 
le fichier.


D'apres ce que j'ai compris de la doc, j'ai tenté quelques commandes,
jamais bon.

sed -i -e "s/$-25/nouveaumot/g" *.php

Mmm, tu as pas dû lire beaucoup de doc ;-)
Regarde http://ll.lairdutemps.org/linux/sed et les liens en début de page (il 
faut remettre à la main le bon n° version pour abs).

Comment dire à sed de remplacer les n dernieres lignes de différents
fichiers par un mot?

Directement, tu ne peux pas.

Quelqun-e aurait une piste?

- compter d'abord le nb de lignes
lignes=$(wc -l < fichier)
start=$((lignes - 25))

puis un truc genre

sed -e "${start}"',$ c ton_mot' < fichier > fichier.new
ou
sed -i .old -e "${start}"',$ c ton_mot' fichier

- mais sed est pas très utile dans ce cas, un simple

head -$start < fichier > fichier.new
echo ton_mot >> fichier.new

suffirait.

--
Daniel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
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]

Répondre à