[perl] copie fichier1 -> fichier2 sauf début
Fermé
fifto
Messages postés
54
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
15 juin 2006
-
13 avril 2006 à 14:45
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 25 juil. 2012 à 18:19
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 25 juil. 2012 à 18:19
A voir également:
- [perl] copie fichier1 -> fichier2 sauf début
- Copie cachée - Guide
- Copie écran samsung - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie disque dur - Guide
- Copie rapide - Télécharger - Gestion de fichiers
4 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
13 avril 2006 à 15:12
13 avril 2006 à 15:12
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.
;-))
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.
;-))
fifto
Messages postés
54
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
15 juin 2006
13 avril 2006 à 15:30
13 avril 2006 à 15:30
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..
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..
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
13 avril 2006 à 16:58
13 avril 2006 à 16:58
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...
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;-))
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 421
Modifié par zipe31 le 25/07/2012 à 18:20
Modifié par zipe31 le 25/07/2012 à 18:20
Salut,
man grep !
man grep !
Contrôle des lignes de contexte -A N, --after-context=N Afficher les N lignes qui suivent celle contenant le motif. Une ligne contenant -- est insérée entre les groupes contigus de correspondances. Avec l'option -o ou --only-matching, ça n'a aucun effet et un avertissement est affiché. -B N, --before-context=N Afficher les N lignes qui précèdent celle qui contient le motif. Une ligne contenant -- est insérée entre les groupes contigus de correspondances. Avec l'option -o ou --only-matching, ça n'a aucun effet et un avertissement est affiché.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 avril 2006 à 19:10
13 avril 2006 à 19:10
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