sed: remplacer les dernieres lignes de fichiers par un mot...
27 réponses
njko
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.
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
par exemple.. me rajoute un nouveaumot à chaque ligne.
Comment dire à sed de remplacer les n dernieres lignes de différents
fichiers par un mot?
Quelqun-e aurait une piste?
Merci et bonne continuation!
Nicolas
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Mathieu JANIN a écrit, mercredi 24 décembre 2008, à 12:07 : [...]
Ben oui, mais finalement, on est encore en dessous en faisant bêtement:
tail -n25 <fichier> && echo Le mot de la fin.
Ah que non, tu ne conserves que les 25 dernières lignes, celles qu'il faut effacer :
~ $ echo {1..42}|sed 's/ /n/g'| tail -n25&&echo Le mot de la fin. 18 19 20 [...] 42 Le mot de la fin.
Ca ne dépasse pas 35 caractères sans compter le nom du fichier
Bah, il ne compte pas, le jeu est de piper (histoire de disqualifier ceux qui lisent deux fois le fichier :).
(40 si on se met à égalité par rapport aux autres shells en préfixant par sh -c ): il y a peut être plus d'une manière de faire, mais autant en revenir au commandes basiques qui ne font qu'une chose mais le font bien.
non ?
Bien, heu, le double tac plus bas doit être assez goret ?
Arf.
Arf++
~ $ echo {1..42}|sed 's/ /n/g'| tac|tail -n+26|tac&&echo Le mot de la fin. 1 2 3 [...] 17 Le mot de la fin.
*42* caractères, le compte est bon... Joyeux Noël ! -- Jacques L'helgoualc'h
-- 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 with a subject of "unsubscribe". Trouble? Contact
Mathieu JANIN a écrit, mercredi 24 décembre 2008, à 12:07 :
[...]
Ben oui, mais finalement, on est encore en dessous en faisant bêtement:
tail -n25 <fichier> && echo Le mot de la fin.
Ah que non, tu ne conserves que les 25 dernières lignes, celles qu'il
faut effacer :
~ $ echo {1..42}|sed 's/ /n/g'|
tail -n25&&echo Le mot de la fin.
18
19
20
[...]
42
Le mot de la fin.
Ca ne dépasse pas 35 caractères sans compter le nom du fichier
Bah, il ne compte pas, le jeu est de piper (histoire de disqualifier
ceux qui lisent deux fois le fichier :).
(40 si on se met à égalité par rapport aux autres shells en préfixant
par sh -c ): il y a peut être plus d'une manière de faire, mais autant
en revenir au commandes basiques qui ne font qu'une chose mais le font
bien.
non ?
Bien, heu, le double tac plus bas doit être assez goret ?
Arf.
Arf++
~ $ echo {1..42}|sed 's/ /n/g'|
tac|tail -n+26|tac&&echo Le mot de la fin.
1
2
3
[...]
17
Le mot de la fin.
*42* caractères, le compte est bon... Joyeux Noël !
--
Jacques L'helgoualc'h
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Mathieu JANIN a écrit, mercredi 24 décembre 2008, à 12:07 : [...]
Ben oui, mais finalement, on est encore en dessous en faisant bêtement:
tail -n25 <fichier> && echo Le mot de la fin.
Ah que non, tu ne conserves que les 25 dernières lignes, celles qu'il faut effacer :
~ $ echo {1..42}|sed 's/ /n/g'| tail -n25&&echo Le mot de la fin. 18 19 20 [...] 42 Le mot de la fin.
Ca ne dépasse pas 35 caractères sans compter le nom du fichier
Bah, il ne compte pas, le jeu est de piper (histoire de disqualifier ceux qui lisent deux fois le fichier :).
(40 si on se met à égalité par rapport aux autres shells en préfixant par sh -c ): il y a peut être plus d'une manière de faire, mais autant en revenir au commandes basiques qui ne font qu'une chose mais le font bien.
non ?
Bien, heu, le double tac plus bas doit être assez goret ?
Arf.
Arf++
~ $ echo {1..42}|sed 's/ /n/g'| tac|tail -n+26|tac&&echo Le mot de la fin. 1 2 3 [...] 17 Le mot de la fin.
*42* caractères, le compte est bon... Joyeux Noël ! -- Jacques L'helgoualc'h
-- 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 with a subject of "unsubscribe". Trouble? Contact
Philippe Merlin
Le mercredi 24 décembre 2008, François Boisson a écrit :
> Le but était de garder tout sauf les 25 dernières lignes pas de gar der > les 25 dernières et c'est justement pour ça qu'on fait tous mumuse > depuis hier ^^
head -n-25 fichier && echo lemotdelafin
François Boisson
> Je remarque d'ailleurs que personne n'a encore proposé de le faire av ec > php ;)
Tu le veux en brainfuck :)?
Désolé François je n'avais pas encore vu ta solution. Philippe
-- 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 with a subject of "unsubscribe". Trouble? Contact
Le mercredi 24 décembre 2008, François Boisson a écrit :
> Le but était de garder tout sauf les 25 dernières lignes pas de gar der
> les 25 dernières et c'est justement pour ça qu'on fait tous mumuse
> depuis hier ^^
head -n-25 fichier && echo lemotdelafin
François Boisson
> Je remarque d'ailleurs que personne n'a encore proposé de le faire av ec
> php ;)
Tu le veux en brainfuck :)?
Désolé François je n'avais pas encore vu ta solution.
Philippe
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le mercredi 24 décembre 2008, François Boisson a écrit :
> Le but était de garder tout sauf les 25 dernières lignes pas de gar der > les 25 dernières et c'est justement pour ça qu'on fait tous mumuse > depuis hier ^^
head -n-25 fichier && echo lemotdelafin
François Boisson
> Je remarque d'ailleurs que personne n'a encore proposé de le faire av ec > php ;)
Tu le veux en brainfuck :)?
Désolé François je n'avais pas encore vu ta solution. Philippe
-- 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 with a subject of "unsubscribe". Trouble? Contact
-- 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 with a subject of "unsubscribe". Trouble? Contact
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
-- 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 with a subject of "unsubscribe". Trouble? Contact
Philippe Merlin
Le mercredi 24 décembre 2008, Kevin Hinault a écrit :
Le 24 décembre 2008 12:07, Mathieu JANIN a écrit : > Ben oui, mais finalement, on est encore en dessous en faisant bêtemen t: > > tail -n25 <fichier> && echo Le mot de la fin. > > Ca ne dépasse pas 35 caractères sans compter le nom du fichier (40 si on > se met à égalité par rapport aux autres shells en préfixant par sh -c ): > il y a peut être plus d'une manière de faire, mais autant en reveni r au > commandes basiques qui ne font qu'une chose mais le font bien. > > non ?
non :)
Le but était de garder tout sauf les 25 dernières lignes pas de garder les 25 dernières et c'est justement pour ça qu'on fait tous mumuse depuis hier ^^
Je remarque d'ailleurs que personne n'a encore proposé de le faire avec php ;)
moi je me lance avec une variante : head --lines=-25 <fichier> && echo " Le mot de la fin". bon noël. Philippe
-- 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 with a subject of "unsubscribe". Trouble? Contact
Le mercredi 24 décembre 2008, Kevin Hinault a écrit :
Le 24 décembre 2008 12:07, Mathieu JANIN <mattotop@orange.fr> a écrit :
> Ben oui, mais finalement, on est encore en dessous en faisant bêtemen t:
>
> tail -n25 <fichier> && echo Le mot de la fin.
>
> Ca ne dépasse pas 35 caractères sans compter le nom du fichier (40 si on
> se met à égalité par rapport aux autres shells en préfixant par sh -c ):
> il y a peut être plus d'une manière de faire, mais autant en reveni r au
> commandes basiques qui ne font qu'une chose mais le font bien.
>
> non ?
non :)
Le but était de garder tout sauf les 25 dernières lignes pas de garder
les 25 dernières et c'est justement pour ça qu'on fait tous mumuse
depuis hier ^^
Je remarque d'ailleurs que personne n'a encore proposé de le faire avec php
;)
moi je me lance avec une variante :
head --lines=-25 <fichier> && echo " Le mot de la fin".
bon noël.
Philippe
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le mercredi 24 décembre 2008, Kevin Hinault a écrit :
Le 24 décembre 2008 12:07, Mathieu JANIN a écrit : > Ben oui, mais finalement, on est encore en dessous en faisant bêtemen t: > > tail -n25 <fichier> && echo Le mot de la fin. > > Ca ne dépasse pas 35 caractères sans compter le nom du fichier (40 si on > se met à égalité par rapport aux autres shells en préfixant par sh -c ): > il y a peut être plus d'une manière de faire, mais autant en reveni r au > commandes basiques qui ne font qu'une chose mais le font bien. > > non ?
non :)
Le but était de garder tout sauf les 25 dernières lignes pas de garder les 25 dernières et c'est justement pour ça qu'on fait tous mumuse depuis hier ^^
Je remarque d'ailleurs que personne n'a encore proposé de le faire avec php ;)
moi je me lance avec une variante : head --lines=-25 <fichier> && echo " Le mot de la fin". bon noël. Philippe
-- 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 with a subject of "unsubscribe". Trouble? Contact
-- 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 with a subject of "unsubscribe". Trouble? Contact
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
-- 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 with a subject of "unsubscribe". Trouble? Contact
Arnaud Delobelle
On 24 Dec 2008, at 12:29, François Boisson wrote:
head -n-25 fichier && echo lemotdelafin
OK mais je soupçonne que head -n{nombre négatif} soit spécifique à GNU head donc pas très portable.
-- Arnaud
-- 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 with a subject of "unsubscribe". Trouble? Contact
On 24 Dec 2008, at 12:29, François Boisson wrote:
head -n-25 fichier && echo lemotdelafin
OK mais je soupçonne que head -n{nombre négatif} soit spécifique à GNU
head donc pas très portable.
--
Arnaud
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
OK mais je soupçonne que head -n{nombre négatif} soit spécifique à GNU head donc pas très portable.
-- Arnaud
-- 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 with a subject of "unsubscribe". Trouble? Contact
njko
Salut à tou-te-s
Bonne idée vim et quoi qu'il en soit merci pour vos réponses, je vais essayer ça sans tarder...
(En fait j'avais fait ça avec sed y'a qqes années mais ayant pas trop touché de boites à boutons depuis un bon bout de temps, j'ai pas été foutu de me rappeler bien comment)
Merci à tous et bonne année!
++
njko
On Wed, 24 Dec 2008 10:39:45 +0000, Arnaud Delobelle
Personne n'a mentionné awk (pas testé):
awk '{r[i++%25]=$0;if(i>%)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 :)
Et pourquoi pas vim tant qu'on y est :D
vim +$-25,$s/_.*/nouveaumot/g +wq test
Moi c'est ce que je trouve le plus lisible, court et naturel !
Joyeux noël!
Oui Joyeux Noël à tous, et bonne ann.. ah non, on n'a pas encore le droit ;)
-- 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 with a subject of "unsubscribe". Trouble? Contact
-- 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 with a subject of "unsubscribe". Trouble? Contact
Salut à tou-te-s
Bonne idée vim et quoi qu'il en soit merci pour vos réponses, je vais
essayer ça sans tarder...
(En fait j'avais fait ça avec sed y'a qqes années mais ayant pas trop
touché de boites à boutons depuis un bon bout de temps, j'ai pas été foutu
de me rappeler bien comment)
Merci à tous et bonne année!
++
njko
On Wed, 24 Dec 2008 10:39:45 +0000, Arnaud Delobelle
Personne n'a mentionné awk (pas testé):
awk '{r[i++%25]=$0;if(i>%)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 :)
Et pourquoi pas vim tant qu'on y est :D
vim +$-25,$s/_.*/nouveaumot/g +wq test
Moi c'est ce que je trouve le plus lisible, court et naturel !
Joyeux noël!
Oui Joyeux Noël à tous, et bonne ann.. ah non, on n'a pas encore le droit
;)
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact
listmaster@lists.debian.org
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Bonne idée vim et quoi qu'il en soit merci pour vos réponses, je vais essayer ça sans tarder...
(En fait j'avais fait ça avec sed y'a qqes années mais ayant pas trop touché de boites à boutons depuis un bon bout de temps, j'ai pas été foutu de me rappeler bien comment)
Merci à tous et bonne année!
++
njko
On Wed, 24 Dec 2008 10:39:45 +0000, Arnaud Delobelle
Personne n'a mentionné awk (pas testé):
awk '{r[i++%25]=$0;if(i>%)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 :)
Et pourquoi pas vim tant qu'on y est :D
vim +$-25,$s/_.*/nouveaumot/g +wq test
Moi c'est ce que je trouve le plus lisible, court et naturel !
Joyeux noël!
Oui Joyeux Noël à tous, et bonne ann.. ah non, on n'a pas encore le droit ;)
-- 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 with a subject of "unsubscribe". Trouble? Contact
-- 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 with a subject of "unsubscribe". Trouble? Contact