Re: sed: remplacer les dernieres lignes de fichiers par un mot...
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
Reply to: