[PERL]- Extraire lignes à partir de la n ième
Fermé
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
-
22 mai 2007 à 16:24
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 7 févr. 2008 à 11:10
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 7 févr. 2008 à 11:10
A voir également:
- [PERL]- Extraire lignes à partir de la n ième
- Extraire une video youtube - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Aller à la ligne excel - Guide
- Extraire son video - Guide
- Comment faire une recherche à partir d'une photo - Guide
19 réponses
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
22 mai 2007 à 16:37
22 mai 2007 à 16:37
Salut,
je vais voir ça ce soir.
en revanche j'aimerais bien que tu affiche quelques lignes pour avoir la structure correcte
merci
je vais voir ça ce soir.
en revanche j'aimerais bien que tu affiche quelques lignes pour avoir la structure correcte
merci
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
22 mai 2007 à 16:50
22 mai 2007 à 16:50
L'exemple ne suffit pas ?
Je rajoute moi-même à l'écriture du fichier la date et l'heure et un >
Il est possible que plusieurs lignes aient la même heure (et la même date d'ailleurs) et les lignes peuvent être TRES longues (>1000 car)
070519-011115> NetWorker savegroup: (notice) G-PLANETE completed, Total 4 client(s), 4 Succeeded. Please see group completion details for more information.
070519-011115>
070519-011115> Succeeded: mars, jupiter, io, neptune
070519-011115>
070519-011115> Start time: Fri May 18 21:30:00 2007
070519-011115> End time: Sat May 19 01:11:14 2007
070519-011115>
070519-011115>
070519-011115> --- Successful Save Sets ---
070519-011115>
070519-011115> mars: /app/v2i03 level=incr, 0 KB 00:00:08 0 files
070519-011115> mars: /app/wui03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /app/fai03 level=incr, 0 KB 00:00:05 0 files
070519-011115> mars: /app/v1i03 level=incr, 0 KB 00:00:05 0 files
070519-011115> mars: /app/w1i03 level=incr, 11 KB 00:00:05 5 files
070519-011115> mars: /svg/hai03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /fic/hai03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /log/hai03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /app/hai03 level=incr, 0 KB 00:00:04 0 files
070519-011115> mars: /svg/eni03 level=incr, 0 KB 00:00:04 0 files
070519-011115> mars: /fic/eni03 level=incr, 0 KB 00:00:06 0 files
070519-011115> mars: /log/eni03 level=incr, 0 KB 00:00:02 0 files
070519-011115> mars: /app/eni03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /log/x2i03 level=incr, 0 KB 00:00:04 0 files
070519-011115> mars: /app/x2i03 level=incr, 0 KB 00:00:02 0 files
070519-011116> mars: /log/tbi03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /svg/svi03 level=incr, 0 KB 00:00:04 0 files
070519-011116> mars: /fic/svi03 level=incr, 0 KB 00:00:06 0 files
070519-011116> mars: /log/svi03 level=incr, 0 KB 00:00:02 0 files
070519-011116> mars: /app/svi03 level=incr, 0 KB 00:00:04 0 files
070519-011116> mars: /svg/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /fic/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /log/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /app/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /svg/cii03 level=incr, 0 KB 00:00:06 0 files
070519-011116> mars: /log/cii03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /app/cii03 level=incr, 0 KB 00:00:02 0 files
Je rajoute moi-même à l'écriture du fichier la date et l'heure et un >
Il est possible que plusieurs lignes aient la même heure (et la même date d'ailleurs) et les lignes peuvent être TRES longues (>1000 car)
070519-011115> NetWorker savegroup: (notice) G-PLANETE completed, Total 4 client(s), 4 Succeeded. Please see group completion details for more information.
070519-011115>
070519-011115> Succeeded: mars, jupiter, io, neptune
070519-011115>
070519-011115> Start time: Fri May 18 21:30:00 2007
070519-011115> End time: Sat May 19 01:11:14 2007
070519-011115>
070519-011115>
070519-011115> --- Successful Save Sets ---
070519-011115>
070519-011115> mars: /app/v2i03 level=incr, 0 KB 00:00:08 0 files
070519-011115> mars: /app/wui03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /app/fai03 level=incr, 0 KB 00:00:05 0 files
070519-011115> mars: /app/v1i03 level=incr, 0 KB 00:00:05 0 files
070519-011115> mars: /app/w1i03 level=incr, 11 KB 00:00:05 5 files
070519-011115> mars: /svg/hai03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /fic/hai03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /log/hai03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /app/hai03 level=incr, 0 KB 00:00:04 0 files
070519-011115> mars: /svg/eni03 level=incr, 0 KB 00:00:04 0 files
070519-011115> mars: /fic/eni03 level=incr, 0 KB 00:00:06 0 files
070519-011115> mars: /log/eni03 level=incr, 0 KB 00:00:02 0 files
070519-011115> mars: /app/eni03 level=incr, 0 KB 00:00:03 0 files
070519-011115> mars: /log/x2i03 level=incr, 0 KB 00:00:04 0 files
070519-011115> mars: /app/x2i03 level=incr, 0 KB 00:00:02 0 files
070519-011116> mars: /log/tbi03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /svg/svi03 level=incr, 0 KB 00:00:04 0 files
070519-011116> mars: /fic/svi03 level=incr, 0 KB 00:00:06 0 files
070519-011116> mars: /log/svi03 level=incr, 0 KB 00:00:02 0 files
070519-011116> mars: /app/svi03 level=incr, 0 KB 00:00:04 0 files
070519-011116> mars: /svg/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /fic/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /log/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /app/mitci03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /svg/cii03 level=incr, 0 KB 00:00:06 0 files
070519-011116> mars: /log/cii03 level=incr, 0 KB 00:00:03 0 files
070519-011116> mars: /app/cii03 level=incr, 0 KB 00:00:02 0 files
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
22 mai 2007 à 16:59
22 mai 2007 à 16:59
L'exemple ne suffit pas ?
Oui, j'ai lu en diagonale :-))
Avant de partir du boulot voilà une piste (je n'ai pas testé)
En supposant que le fichier est trié par date tu peux lire à partir d'une certaine date de cette façon
lami20j
Oui, j'ai lu en diagonale :-))
Avant de partir du boulot voilà une piste (je n'ai pas testé)
En supposant que le fichier est trié par date tu peux lire à partir d'une certaine date de cette façon
open LIRE,"tonfichier" or die "E/S : $!\n"; open ECRIRE, ">resultat" or die "E/S : $!\n"; $date='ta_date'; $heure='heure'; while(<LIRE>){ print ECRIRE if /${date}-$heure/ .. eof; }--
lami20j
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
23 mai 2007 à 10:10
23 mai 2007 à 10:10
Merci ça marche...
Je n'ai pas compris pourquoi d'ailleurs !
C'est les .. ?
Je n'ai pas compris pourquoi d'ailleurs !
C'est les .. ?
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
23 mai 2007 à 12:08
23 mai 2007 à 12:08
Salut,
je suis au boulot et je n'ai pas trop de temps.
semble-t-il que les opérateurs .. et ... sont un peu plus difficile à comprendre
je vais essayer ce soir de t'expliquer un peut le comportement de ces 2 opérateurs, bien sûr si ça t'interesse
je suis au boulot et je n'ai pas trop de temps.
semble-t-il que les opérateurs .. et ... sont un peu plus difficile à comprendre
je vais essayer ce soir de t'expliquer un peut le comportement de ces 2 opérateurs, bien sûr si ça t'interesse
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
23 mai 2007 à 12:22
23 mai 2007 à 12:22
Avec grand plaisir ! ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
23 mai 2007 à 20:25
23 mai 2007 à 20:25
Re,
Les opérateurs .. et ... peuvent être utilisés avec des regex ou avec des numéros de lignes.
L'opérateur .. renvoie VRAI si les 2 tests sont VRAI sur la même lignes, en revanche ... ne le fait pas.
Dans l'expression DEBUT .. FIN la valeur FAUX est renvoyé sans arrêt si DEBUT n'est pas vérifié.
Une fois DEBUT verifié, il n'est plus vérifié et la valeur VRAI est retournée jusqu'à quand FIN est vérifié.
Quand FIN est vérifié, le cycle recommence.
Pour voir la différence entre .. et ... je vais te donner un exemple
Pour ..
DEBUT de la chaine, jusqu'à la FIN
Pour ...
DEBUT de la chaine, jusqu'à la FIN
comprendre les opérateurs .. et ...
FIN
L'opérateur .. teste les deux conditions sur la même ligne, donc si le test est vérifié alors il retourne VRAI jusqu'à quand il FIN est vérifié, et il s'arrête. Le cycle ne recommence plus puisque DEBUT n'est plus vérifié.
L'opérateur ... va continue jusqu'à la prochaine ligne qui contient FIN. L'opérateur ... ne teste pas les conditions dans le même temps.
Un autre comportement spécial c'est dans le cas d'utilisation de numéro de ligne au lieu des regex.
On ne peux pas écrire
On peut écrire
Les opérateurs .. et ... peuvent être utilisés avec des regex ou avec des numéros de lignes.
L'opérateur .. renvoie VRAI si les 2 tests sont VRAI sur la même lignes, en revanche ... ne le fait pas.
Dans l'expression DEBUT .. FIN la valeur FAUX est renvoyé sans arrêt si DEBUT n'est pas vérifié.
Une fois DEBUT verifié, il n'est plus vérifié et la valeur VRAI est retournée jusqu'à quand FIN est vérifié.
Quand FIN est vérifié, le cycle recommence.
Pour voir la différence entre .. et ... je vais te donner un exemple
Pour ..
#!/usr/bin/perl while(<DATA>){ print if /DEBUT/ .. /FIN/; } __END__ DEBUT de la chaine, jusqu'à la FIN comprendre les opérateurs .. et ... FINLe résultat est
DEBUT de la chaine, jusqu'à la FIN
Pour ...
#!/usr/bin/perl while(<DATA>){ print if /DEBUT/ ... /FIN/; } __END__ DEBUT de la chaine, jusqu'à la FIN comprendre les opérateurs .. et ... FINLe résultat est
DEBUT de la chaine, jusqu'à la FIN
comprendre les opérateurs .. et ...
FIN
L'opérateur .. teste les deux conditions sur la même ligne, donc si le test est vérifié alors il retourne VRAI jusqu'à quand il FIN est vérifié, et il s'arrête. Le cycle ne recommence plus puisque DEBUT n'est plus vérifié.
L'opérateur ... va continue jusqu'à la prochaine ligne qui contient FIN. L'opérateur ... ne teste pas les conditions dans le même temps.
Un autre comportement spécial c'est dans le cas d'utilisation de numéro de ligne au lieu des regex.
On ne peux pas écrire
$debut = 10; $fin = 100; print if $debut .. $fin;
On peut écrire
print if 1..10;ou
$debut = 10; $fin = 100; print if $. == $debut .. $. == $fin;
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
24 mai 2007 à 08:33
24 mai 2007 à 08:33
Je vais voir tout ça...
http://ww3.ac-creteil.fr/sciences-ecole/spip/article.php3?id_article=10
;-)
http://ww3.ac-creteil.fr/sciences-ecole/spip/article.php3?id_article=10
;-)
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
26 mai 2007 à 21:31
26 mai 2007 à 21:31
J'ai pas compris où est le test, je ne vois nulle part l'endroit où on dit commence par date-heure...
Parce que $, c'est pour dire variable, non ?
Parce que $, c'est pour dire variable, non ?
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
26 mai 2007 à 21:51
26 mai 2007 à 21:51
Salut,
Parce que $, c'est pour dire variable, non ?
Plus précis, scalaire en Perl.
Oui, puisque l'opérateur m// permet l'interpolation des variables.
Je vais essayer de donner une explication un peu moins obscure.
Prenons le fragment et je veux obtenir seulement le paragraphe entre DEBUT et FIN
Je suis obligé d'utilser ... puisque .. fait le teste sur la même ligne
(ne demande pas pourquoi, puisque sinon je te demanderai pourquoi avec + j'obtiens 1 + 1 = 0 et avec - j'obtiens 1 - 1 = 0)
C'est tout simplement un opérateur qui a été conçu pour ça :-))
......
zzzzzzzzzzz
DEBUT aaaaaaaaaaa FIN
gdsdfsdf
dsfsdf
FIN
zzzzzzzzzzz
............
En fait l'opérateur ... travaille de la façon suivante
Il cherche DEBUT, une fois qu'il le trouve il ne le cherche plus et renvoie VRAI en testant toujours si FIN existe ou pas
Une fois qu'il a trouvé FIN il s'arrête et le cycle recommence (c'est pratique quand on a plusieurs paragraphes situés entre DEBUT et FIN)
Dans ton cas j'ai utiliser la fonction eof pour obtenir tout entre le 1er DEBUT rencontré (en fin tes dates) jusqu'à la fin de fichier.
C'est plus clair maintenant?
Parce que $, c'est pour dire variable, non ?
Plus précis, scalaire en Perl.
Oui, puisque l'opérateur m// permet l'interpolation des variables.
Je vais essayer de donner une explication un peu moins obscure.
Prenons le fragment et je veux obtenir seulement le paragraphe entre DEBUT et FIN
Je suis obligé d'utilser ... puisque .. fait le teste sur la même ligne
(ne demande pas pourquoi, puisque sinon je te demanderai pourquoi avec + j'obtiens 1 + 1 = 0 et avec - j'obtiens 1 - 1 = 0)
C'est tout simplement un opérateur qui a été conçu pour ça :-))
......
zzzzzzzzzzz
DEBUT aaaaaaaaaaa FIN
gdsdfsdf
dsfsdf
FIN
zzzzzzzzzzz
............
En fait l'opérateur ... travaille de la façon suivante
Il cherche DEBUT, une fois qu'il le trouve il ne le cherche plus et renvoie VRAI en testant toujours si FIN existe ou pas
Une fois qu'il a trouvé FIN il s'arrête et le cycle recommence (c'est pratique quand on a plusieurs paragraphes situés entre DEBUT et FIN)
Dans ton cas j'ai utiliser la fonction eof pour obtenir tout entre le 1er DEBUT rencontré (en fin tes dates) jusqu'à la fin de fichier.
C'est plus clair maintenant?
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
29 mai 2007 à 12:36
29 mai 2007 à 12:36
Voui, mais ça confine à la magie :-)
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
31 mai 2007 à 08:50
31 mai 2007 à 08:50
J'ai quand même un souci : si la forme recherchée n'existe pas, alors on ne recopie rien...
Vu que c'est une date et une heure, je voudrais recopier si c'est 'supérieur à ', or il est possible que je n'ai pas de ligne dans le fichier pour une heure donnée...
Tu as une idée ?
Vu que c'est une date et une heure, je voudrais recopier si c'est 'supérieur à ', or il est possible que je n'ai pas de ligne dans le fichier pour une heure donnée...
Tu as une idée ?
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
31 mai 2007 à 11:10
31 mai 2007 à 11:10
Salut,
bien sûr que je pourrais avoir une idée, mais dans des cas particuliers comme celui là il faut avoir la structure de fichier et aussi ce que je cherche avec l'exactitude
à savoir aussi (j'ai remarqué que pour une date et heure il ya plusieurs lignes) qu'il faut savoir exactement ce qu'on cherche
si jamais une ligne sans date et heure se trouve dans le DEBUT et FIN alors sache qu'elle sera pris en compte même si on ne veut pas
Pour corriger ça on peut utiliser next pour que le script saute les lignes qui ne commencent pas avec date et heure
Tu vois qu'il y a plusieurs situations qu'on doit prendre en compte.
En bref je pourrais repondre à tes questions si tu me dit décrit avec précison les cas concrets.
En ce qui concerne l'histoire de supériour à on peut le faire, en utilisant des regex et pas des comparaisons
par exemple pour chercher tout les numéros qui sont plus grandes que 24 on peut faire
1. avec comparaison
on pout comparer directement avec >= 24 par exemple
2. avec regex
on ne pense pas à une comparaison mais à une corespondace des caractères
je m'explique
si je cherche tout les données plus grandes que 24 ça veut dire que le 1er caractère soit il va être 2 et je l'associe avec la classe [4-9] pour le 2ème caractère
soit le 1er caractère je vais le charcher dans la classe [3-9] et pour le 2ème séra la classe [0-9]
il nous reste à chercher avec le motif /2[4-9]|[3-9][0-9]/ qui vas envoyer toujours vrai pour
24
25
.
.
29
34
.
.
99
a toi :-))
bien sûr que je pourrais avoir une idée, mais dans des cas particuliers comme celui là il faut avoir la structure de fichier et aussi ce que je cherche avec l'exactitude
à savoir aussi (j'ai remarqué que pour une date et heure il ya plusieurs lignes) qu'il faut savoir exactement ce qu'on cherche
si jamais une ligne sans date et heure se trouve dans le DEBUT et FIN alors sache qu'elle sera pris en compte même si on ne veut pas
Pour corriger ça on peut utiliser next pour que le script saute les lignes qui ne commencent pas avec date et heure
Tu vois qu'il y a plusieurs situations qu'on doit prendre en compte.
En bref je pourrais repondre à tes questions si tu me dit décrit avec précison les cas concrets.
En ce qui concerne l'histoire de supériour à on peut le faire, en utilisant des regex et pas des comparaisons
par exemple pour chercher tout les numéros qui sont plus grandes que 24 on peut faire
1. avec comparaison
on pout comparer directement avec >= 24 par exemple
2. avec regex
on ne pense pas à une comparaison mais à une corespondace des caractères
je m'explique
si je cherche tout les données plus grandes que 24 ça veut dire que le 1er caractère soit il va être 2 et je l'associe avec la classe [4-9] pour le 2ème caractère
soit le 1er caractère je vais le charcher dans la classe [3-9] et pour le 2ème séra la classe [0-9]
il nous reste à chercher avec le motif /2[4-9]|[3-9][0-9]/ qui vas envoyer toujours vrai pour
24
25
.
.
29
34
.
.
99
a toi :-))
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
31 mai 2007 à 17:05
31 mai 2007 à 17:05
TOUTES les lignes commencent par aammjj-hhmmss.
Mais vu que c'est un fichier log, il y a des cas où l'on écrit pas pendant de longues périodes.
Je veux pouvoir sélectionner toutes les lignes postérieures (ou égales) à une heure donnée, même s'il n'y a pas d'entrées pour cette heure :
070531-061212
070531-061312
070531-061412
070531-061512
070531-081212
070531-091212
Ici, je voudrais avoir la possibilité de sélectionner tout ce qui vient après 7h00, même si aucune ligne n'existe pour 7h...
S'il le faut je peux changer l'horodatage (c'est moi qui le gère) pour supprimer le '-' et faire de la date et heure un nombre entier strictement croissant...
Ca t'aidrait ?
Mais vu que c'est un fichier log, il y a des cas où l'on écrit pas pendant de longues périodes.
Je veux pouvoir sélectionner toutes les lignes postérieures (ou égales) à une heure donnée, même s'il n'y a pas d'entrées pour cette heure :
070531-061212
070531-061312
070531-061412
070531-061512
070531-081212
070531-091212
Ici, je voudrais avoir la possibilité de sélectionner tout ce qui vient après 7h00, même si aucune ligne n'existe pour 7h...
S'il le faut je peux changer l'horodatage (c'est moi qui le gère) pour supprimer le '-' et faire de la date et heure un nombre entier strictement croissant...
Ca t'aidrait ?
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
31 mai 2007 à 17:32
31 mai 2007 à 17:32
Pas besoin de supprimer le -, je peux le sauter avec la regex
Je vais voir ce soir.
Je vais voir ce soir.
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
2 juin 2007 à 09:10
2 juin 2007 à 09:10
Salut,
voici une possibilité
La comparaison je la fait par rapport à la date et heure 070519011112 qui n'existe pas
voici une possibilité
#!/usr/bin/perl use strict;use warnings; print "Entrez la date et heure de debut, format yymmddhhmmss [par défaut 070519011112] : "; chomp(my $lim = <STDIN>); $lim ||= '070519011112'; while (<DATA>){ /^(\d+)-(\d+)\D/; print if ($1 . $2) >= $lim; } __END__ 070510-011110> NetWorker savegroup: (notice) G-PLANETE completed 070510-011110> 070510-011110> Succeeded: mars, jupiter, io, neptune 070510-011110> 070510-011110> Start time: Fri May 18 21:30:00 2007 070510-011110> End time: Sat May 19 01:11:14 2007 070510-011110> 070510-011110> 070510-011110> --- Successful Save Sets --- 070519-011115> --- LIMITE 070519-011115> mars: /app/v2i03 level=incr, 0 KB 00:00:08 0 files 070519-011115> mars: /app/wui03 level=incr, 0 KB 00:00:03 0 files 070519-011115> mars: /app/x2i03 level=incr, 0 KB 00:00:02 0 files 070519-011116> mars: /log/tbi03 level=incr, 0 KB 00:00:03 0 files 070519-011116> mars: /svg/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/cii03 level=incr, 0 KB 00:00:02 0 files 070531-061312 070531-061412 070531-061512 070531-081212 070531-091212 070531-091116> mars: /fic/mitci03 level=incr, 0 KB 00:00:03 0 files 070531-091116> mars: /log/mitci03 level=incr, 0 KB 00:00:03 0 files 070532-061116> mars: /app/mitci03 level=incr, 0 KB 00:00:03 0 filesLe résultat
La comparaison je la fait par rapport à la date et heure 070519011112 qui n'existe pas
lami20j@debian:~$ perl ccm.pl Entrez la date et heure de debut, format yymmddhhmmss [par défaut 070519011112] : 070519-011115> --- LIMITE 070519-011115> mars: /app/v2i03 level=incr, 0 KB 00:00:08 0 files 070519-011115> mars: /app/wui03 level=incr, 0 KB 00:00:03 0 files 070519-011115> mars: /app/x2i03 level=incr, 0 KB 00:00:02 0 files 070519-011116> mars: /log/tbi03 level=incr, 0 KB 00:00:03 0 files 070519-011116> mars: /svg/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/cii03 level=incr, 0 KB 00:00:02 0 files 070531-061312 070531-061412 070531-061512 070531-081212 070531-091212 070531-091116> mars: /fic/mitci03 level=incr, 0 KB 00:00:03 0 files 070531-091116> mars: /log/mitci03 level=incr, 0 KB 00:00:03 0 files 070532-061116> mars: /app/mitci03 level=incr, 0 KB 00:00:03 0 files
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
4 juin 2007 à 09:56
4 juin 2007 à 09:56
Ca va mieux comme ça...
Et si je ne veux tester que l'heure, ça ne marche pas avec ça :
/^(\d+)-(\d{2})/;
J'ai loupé quoi ?
Et si je ne veux tester que l'heure, ça ne marche pas avec ça :
/^(\d+)-(\d{2})/;
J'ai loupé quoi ?
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
4 juin 2007 à 10:30
4 juin 2007 à 10:30
Salut,
si tu ne veux tester que l'heure il faut sauter la date et le tiret et ne pas les capturer non plus
si tu ne veux tester que l'heure il faut sauter la date et le tiret et ne pas les capturer non plus
while (<DATA>){ /^.{7}(\d+)\D/; print if $1 >= $lim; }Je n'ai pas testé, je suis au boulot
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
4 juin 2007 à 10:40
4 juin 2007 à 10:40
Je n'ai pas testé, je suis au boulot
Quelle idée aussi !?
Rentre immédiatement chez toi pour tester tes dires !!! NoméO des fois !
;-DDD
Bonne journée.
Quelle idée aussi !?
Rentre immédiatement chez toi pour tester tes dires !!! NoméO des fois !
;-DDD
Bonne journée.
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
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 juin 2007 à 19:07
4 juin 2007 à 19:07
Rentre immédiatement chez toi
j'en ai marre de RATP
dès que j'ai vu ton message je suis parti, mais avec le trafic je viens d'arrivé.
désolé pour ce retard :-DD
la prochain fois je vais prendre le TGV :-))
j'en ai marre de RATP
dès que j'ai vu ton message je suis parti, mais avec le trafic je viens d'arrivé.
désolé pour ce retard :-DD
la prochain fois je vais prendre le TGV :-))
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
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 juin 2007 à 19:12
4 juin 2007 à 19:12
;-))
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
4 juin 2007 à 11:13
4 juin 2007 à 11:13
Pardon, je me suis mal exprimé, je voulais dire : tester la date et uniquement l'heure (pas les minutes secondes...)
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
4 juin 2007 à 11:50
4 juin 2007 à 11:50
Essaie
/^(\d{6})-(\d\d)/; print if ($1 . $2) >= $lim;sinon tu peux aussi faire avec unpack
($t) = unpack("A6 x1 A2",$_); print if $t >= $lim;toujours pas de test :-)
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
4 juin 2007 à 19:03
4 juin 2007 à 19:03
Et si je ne veux tester que l'heure, ça ne marche pas avec ça :
/^(\d+)-(\d{2})/;
J'ai loupé quoi ?
ça marche ta regex
/^(\d+)-(\d{2})/;
J'ai loupé quoi ?
ça marche ta regex
lami20j@debian:~/trash$ cat ccm.pl #!/usr/bin/perl use strict;use warnings; print "Entrez la date et heure de debut, format yymmddhh [par défaut 07051901] : "; chomp(my $lim = <STDIN>); $lim ||= '070519011112'; while (<DATA>){ /^(\d+)-(\d{2})/; print if ($1 . $2) >= $lim; } __END__ 070510-011110> NetWorker savegroup: (notice) G-PLANETE completed 070510-011110> 070510-011110> Succeeded: mars, jupiter, io, neptune 070510-011110> 070510-011110> Start time: Fri May 18 21:30:00 2007 070510-011110> End time: Sat May 19 01:11:14 2007 070510-011110> 070510-011110> 070510-011110> --- Successful Save Sets --- 070519-011115> --- LIMITE 070519-011115> mars: /app/v2i03 level=incr, 0 KB 00:00:08 0 files 070519-011115> mars: /app/wui03 level=incr, 0 KB 00:00:03 0 files 070519-011115> mars: /app/x2i03 level=incr, 0 KB 00:00:02 0 files 070519-011116> mars: /log/tbi03 level=incr, 0 KB 00:00:03 0 files 070519-011116> mars: /svg/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/cii03 level=incr, 0 KB 00:00:02 0 files 070531-061312 070531-061412 070531-061512 070531-081212 070531-091212 070531-091116> mars: /fic/mitci03 level=incr, 0 KB 00:00:03 0 files 070531-091116> mars: /log/mitci03 level=incr, 0 KB 00:00:03 0 files 070532-061116> mars: /app/mitci03 level=incr, 0 KB 00:00:03 0 files lami20j@debian:~/trash$ perl ccm.pl Entrez la date et heure de debut, format yymmddhh [par défaut 07051901] : 07051901 070519-011115> --- LIMITE 070519-011115> mars: /app/v2i03 level=incr, 0 KB 00:00:08 0 files 070519-011115> mars: /app/wui03 level=incr, 0 KB 00:00:03 0 files 070519-011115> mars: /app/x2i03 level=incr, 0 KB 00:00:02 0 files 070519-011116> mars: /log/tbi03 level=incr, 0 KB 00:00:03 0 files 070519-011116> mars: /svg/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/svi03 level=incr, 0 KB 00:00:04 0 files 070519-011116> mars: /app/cii03 level=incr, 0 KB 00:00:02 0 files 070531-061312 070531-061412 070531-061512 070531-081212 070531-091212 070531-091116> mars: /fic/mitci03 level=incr, 0 KB 00:00:03 0 files 070531-091116> mars: /log/mitci03 level=incr, 0 KB 00:00:03 0 files 070532-061116> mars: /app/mitci03 level=incr, 0 KB 00:00:03 0 files lami20j@debian:~/trash$
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
4 juin 2007 à 22:03
4 juin 2007 à 22:03
Ben la première fois, ça n'a pas marché, alors...
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
4 juin 2007 à 22:47
4 juin 2007 à 22:47
alors, c'est bon pour toi?! :-))
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
4 juin 2007 à 23:00
4 juin 2007 à 23:00
Oui, ça a remarché, mais entre temps, j'avais mis \d\d...
Pendant que j'y suis, tu aurais des références de littérature ou de sites sur les fameuses regexp ? (à part google...)
Pendant que j'y suis, tu aurais des références de littérature ou de sites sur les fameuses regexp ? (à part google...)
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
4 juin 2007 à 23:08
4 juin 2007 à 23:08
tu aurais des références de littérature
Voilà ce que j'utilise Maîtrise des expressions régulières
Avec ce livre tu n'as pas besoin d'autre chose :-))
Si tu tiens vraiment à maitriser les regex je te le recommande chaleureusement.
Voilà ce que j'utilise Maîtrise des expressions régulières
Avec ce livre tu n'as pas besoin d'autre chose :-))
Si tu tiens vraiment à maitriser les regex je te le recommande chaleureusement.
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
5 juin 2007 à 09:13
5 juin 2007 à 09:13
Merci, je vais voir ce qu'il en retourne...
regexp en perl : https://perldoc.perl.org/perlretut
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
3 323
7 févr. 2008 à 11:03
7 févr. 2008 à 11:03
Yes, but in French it'd be better...
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
>
blux
Messages postés
26576
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 janvier 2025
7 févr. 2008 à 11:10
7 févr. 2008 à 11:10
Salut,
on est sur un site francophone, ne m'oblige pas d'alerter un modo ;-DD
et je pense que tu connais celui là ;-) http://perl.mines-albi.fr/DocFr/perlretut.html
on est sur un site francophone, ne m'oblige pas d'alerter un modo ;-DD
et je pense que tu connais celui là ;-) http://perl.mines-albi.fr/DocFr/perlretut.html