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

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: