|
|
|
|
Bonjour,
J'aimerais faire quelque chose sous perl:
Je lis un fichier texte, et je le copie dans un autre fichier texte dès que je trouve le mot "DEBUT" ainsi que les 3 lignes précédent ce mot.
C'est à dire que par exemple, si mon fichier de départ est:
llllll
kkkkk
lll
ooo
ppp
o
phdoj
230487130
DEBUT
etc....jusque fin de fichier
mon nouveau fichier est :
o
phdoj
230487130
DEBUT
etc....jusque fin de fichier
Voilà, j'ai déjà réussi à écrire dans le nouveau fichier à partir du mot DEBUT, mais je ne sais pas comment conserver les 3 lignes d'avant..
Qqn pourrait m'aider svp ?
merci.
Salut,
|
Oui t'as raison pardon.
|
Merci.
grep -B 3 -A "$(cat fich.txt | wc -l)" "DEBUT" fich.txt > fichier.txt;-)) Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
Salut,
#! /usr/bin/perl
use warnings;
use strict;
my (@lignes3,@rest);
while (<DATA>){
next if 1../DEBUT/i and push @lignes3,$_;
splice(@lignes3,0,-4);
push @rest,$_;
}
print @lignes3,@rest;
__END__
llll
kkkkk
ksdjkfjlll
ooo
ppp
o
phdoj
230487130
DEBUT
etc....jusque fin de fichier
La solution de jipicy est bien plus simple.
C'est très bien d'utiliser les outils déjà existentes.
A toi de voir.
lami20j
|