Flux rss
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[perl] copie fichier1 -> fichier2 sauf début

fifto, le jeudi 13 avril 2006 à 14:45:57 
 Signaler ce message aux modérateurs

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.

1

jipicy, le jeudi 13 avril 2006 à 15:12:19

Salut,

Si tu postais ce que tu a déjà écrit, celà ferait grandement avancer le "schmillblick" et ferait par la même gagner un temps précieux à notre ami "lami20j", non ?

De plus celà t'aiderait sûrement un peu plus du fait que si des incohérences existent dans ton code, elles seraient revues et corrigées au passsage.

;-)) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

fifto, le jeudi 13 avril 2006 à 15:30:56

Oui t'as raison pardon.

Voilà ce que j'ai écrit:

#! /usr/freeware/bin/perl

use warnings;
use strict;

open TTXT ,"fichier1.txt" or die "E/S";
open NEW ,">nouveau.txt" or die "E/S";

open NEW2 ,">nouveau.txt" or die "E/S";

while(<TTXT>){
next unless (/DEBUT/i../END/i);
print NEW $_;
}


MAis ce code affiche à partir de "DEBUT" dans le nouveau fichier, pas les 3 lignes avant ce mot..

Répondre à fifto

3

jipicy, le jeudi 13 avril 2006 à 16:58:02

Merci.

Tu le veux absolument en Perl ton code ?

Parce qu'avec un simple filtre comme "grep" ça peut le faire sur une seule petite ligne de commande...

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é.

Répondre à jipicy

4

 lami20j, le jeudi 13 avril 2006 à 19:10:38

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

Répondre à lami20j
Perl - Les fichiers La notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles... www.commentcamarche.net/contents/perl/perlfich.php3
Copier un fichier d'un dossier à un autre Bonjour, Tout est dans le titre, je voudrais la commande permettant de copier un fichier(scrypt.sh) contenu dans le dossier home vers le dossier test. merci www.commentcamarche.net/forum/affich-11645839-copier-un-fichier-d-un-dossier-a-un-autre
Putty: client copie fichier sur le serveur? (Résolu) Bonjour tout le monde. J'ai putty sous window et je suis client d'un serveur sous linux. Je me connecte sans problème. Je veux copier un fichier du serveur vers ma machine (le bureau par exemple) et je n'y arrive pas: quelles sont les lignes de... www.commentcamarche.net/forum/affich-3154463-putty-client-copie-fichier-sur-le-serveur
Déplacement/copie fichier/dossier impossible (Résolu)Bonjour, Je n'ai plus aucun moyen de déplacer ou de copier tout objets, fichiers ou dossiers, d'un repertoire à un autre, aussi bien du bureau(Windows Millenium) ou ailleurs et inversement. Tout ce que je peux faire, c'est de les supprimer. Je peux... www.commentcamarche.net/forum/affich-1835368-deplacement-copie-fichier-dossier-impossible
Impossible copier fichier 5go sur clé usb 8go (Résolu)Bonjour, je n'arrive pas à copier un fichier de 5 go sur une clé usb vide de 8 go, est-ce normal ? Lorsque je veux copier un fichier de 4 go et plus, j'ai un message d'erreur 'la diskette destination est pleins, veuillez insérer une nouvelle... www.commentcamarche.net/forum/affich-9136687-impossible-copier-fichier-5go-sur-cle-usb-8go
[installation XP] impossible copier fichiersBonjour, je tente de reinstaller un XP. Je n ai jamais rencontre ce pb. Lors de la copie des fichiers(apres formatage et juste avant l install de windows), un message s affiche et me dit qu il est impossible de copier le fichier *.jesépasquoi. En... www.commentcamarche.net/forum/affich-1524641-installation-xp-impossible-copier-fichiers
PHP - Les fichiersLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier... www.commentcamarche.net/contents/php/phpfich.php3
UNIX - Les fichiersIntroduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Types de... www.commentcamarche.net/contents/unix/unix-fichiers.php3
Fichier M3UFormat M3U Un fichier M3U est une playlist audio, c'est-à-dire une liste de lecture pointant vers des fichiers audio. Comment lire un fichier M3U ? Une telle liste peut être lue avec n'importe quel logiciel de lecture audio capable de lire des... www.commentcamarche.net/contents/fichier/m3u.php3