[perl] Selectionner un bloc de texte
Résolu/Fermé
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
-
7 avril 2010 à 13:50
:):):) - 7 juil. 2010 à 17:35
:):):) - 7 juil. 2010 à 17:35
A voir également:
- [perl] Selectionner un bloc de texte
- Sélectionner texte pdf - Guide
- Mettre un texte en majuscule - Guide
- Sélectionnez une extension d'un fichier qui s'ouvre avec un traitement de texte. - Guide
- Déflouter un texte - Forum Logiciels
- Comment retranscrire un entretien audio en texte - Guide
5 réponses
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
Modifié par dubcek le 7/04/2010 à 14:59
Modifié par dubcek le 7/04/2010 à 14:59
hello
$ perl -e '$i=0;while(<>){if(/TOM/){$i=1;next};$i=0 if /BOB/; print if $i}' fichier Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent id mauris eros. Aliquam vel ligula nulla. Proin varius, erat ut blandit pulvinar, massa nulla molestie diam, non accumsan libero orci eu velit. $
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
7 avril 2010 à 15:58
7 avril 2010 à 15:58
comme ça ?
open (FILE, "mod.txt"); @lignes = <FILE>; close(FILE); $i = 0; $f = 0; while ( @lignes ){ if ($lignes[$i] =~ /!!!TOM/) {$i++; $f=1; next} if ($lignes[$i] =~ /!!!/) {last} if($f) {print $lignes[$i]}; $i ++; }
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
7 avril 2010 à 16:00
7 avril 2010 à 16:00
yep merci ^^
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
7 avril 2010 à 15:00
7 avril 2010 à 15:00
Yes, merci bien.
As tu une solution avec la contrainte où je ne connais que TOM ou BOB ?
Car je ne peux pas connaitres les 2 en mêmes temps dans mon code, disons que je peux connaitre celui que je cherche mais pas le suivant.
Imaginons que je cherche le bloc de TOM, je connais TOM et "!!!" mais je ne sais pas ce qu'il va y avoir avant ou après.
As tu une solution avec la contrainte où je ne connais que TOM ou BOB ?
Car je ne peux pas connaitres les 2 en mêmes temps dans mon code, disons que je peux connaitre celui que je cherche mais pas le suivant.
Imaginons que je cherche le bloc de TOM, je connais TOM et "!!!" mais je ne sais pas ce qu'il va y avoir avant ou après.
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
7 avril 2010 à 15:11
7 avril 2010 à 15:11
si tu ne connais que TOM, quelle est la condition de fin du bloc ?
ou si tu ne connais que BOB, quelle est la condition de début du bloc ?
à la place de if(/TOM/), on peut tester une variable
ou si tu ne connais que BOB, quelle est la condition de début du bloc ?
à la place de if(/TOM/), on peut tester une variable
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
7 avril 2010 à 15:16
7 avril 2010 à 15:16
La condition de début de bloc est les 3 !. J'ai fait ca mais je trouve pas ca super optimisé ... :
open (FILE, "mod.txt"); @lignes = <FILE>; close(FILE); $i = 0; $v = 1; while ( @lignes ){ if ($lignes[$i] =~ /!!!TOM/){ while ($lignes[$v] =~ /^[^!!!]/){ print "$lignes[$v]\n"; $v ++; } if ($lignes[$v] =~ /!!!/){ goto B; } } $i ++; $v = $i+1; } B: