[PERL]: HELP script traitement txt tabulaire
Résolu/Fermé
piccolupo13
Messages postés
4
Date d'inscription
mardi 21 août 2007
Statut
Membre
Dernière intervention
16 octobre 2007
-
21 août 2007 à 18:29
piccolupo13 Messages postés 4 Date d'inscription mardi 21 août 2007 Statut Membre Dernière intervention 16 octobre 2007 - 21 août 2007 à 20:48
piccolupo13 Messages postés 4 Date d'inscription mardi 21 août 2007 Statut Membre Dernière intervention 16 octobre 2007 - 21 août 2007 à 20:48
A voir également:
- [PERL]: HELP script traitement txt tabulaire
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- Perl foreach ✓ - Forum Perl
- Perl substitution ✓ - Forum Perl
- [Perl] WWW::Mechanize - Forum Perl
2 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
21 août 2007 à 20:21
21 août 2007 à 20:21
#!/usr/bin/perl use strict;use warnings; my %h; while(<>){ chomp and my ($k,$v) = split /\t+/,$_,2; # ici j'enleve d'abord le caractère saute de ligne \n # ensuite je sépare la chaine de la façon suivante # $k contiendra le 1er mot (Exemple : fait) # $v contendra le reste de la chaîne (Exemple : ADJ fait) push @{$h{$k}},split /\t+/,$v # ici c'est un peu plus compliqué # en fait j'utilise hachage de tableaux # chaque clé est une référence à un tableau anonyme # et pour chaque mot (vu que la clés est unique) # je rajoute avec push le reste de la ligne # en les eclatant sur les tabulations # donc chaque mots sera un élément de tableau # qui permettra peut être une utilisation ultérieure # ce n'était pas vraiment nécessaire, mais bon # tu ne vas pas te facher pour autant :-) } # pour chaque clé de hachage (qui est le mot) # je sort et j'affiche le tableau qui contient toutes les correspondances # pour chaque mot printf "%-15s @{$h{$_}}\n",$_ foreach (sort keys %h); __END__ Il faut voir les fonctions chomp, split, push, sort ainsi que les listes, les tableaux, les hash et ensuite les structures de données en Perl
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
21 août 2007 à 19:14
21 août 2007 à 19:14
Salut,
lami20j@deb:~/trash$ cat ccm.pl #!/usr/bin/perl use strict;use warnings; my %h; while(<>){ chomp and my ($k,$v) = split /\t+/,$_,2; push @{$h{$k}},split /\t+/,$v } printf "%-15s @{$h{$_}}\n",$_ foreach (sort keys %h); __END__ lami20j@deb:~/trash$ cat piccolupo fait ADJ fait faites VER:conj faire faite VER:pper faire fait NOM fait faitout NOM faitout faitouts NOM faitout faits VER:pper faire fait VER:conj faire fait VER:pper faire lami20j@deb:~/trash$ perl ccm.pl piccolupo fait ADJ fait NOM fait VER:conj faire VER:pper faire faite VER:pper faire faites VER:conj faire faitout NOM faitout faitouts NOM faitout faits VER:pper faire lami20j@deb:~/trash$
piccolupo13
Messages postés
4
Date d'inscription
mardi 21 août 2007
Statut
Membre
Dernière intervention
16 octobre 2007
32
21 août 2007 à 19:49
21 août 2007 à 19:49
Bonsoir lami20j !
Tout d'abord un grand MERCI pour ta réponse si rapide et efficace.
Sans vouloir abuser de ton aide, pourrais-tu m'expliquer un petit peu ce que font les lignes de ton script ?
d'avance merci ;)
Piccolupo 13
Tout d'abord un grand MERCI pour ta réponse si rapide et efficace.
Sans vouloir abuser de ton aide, pourrais-tu m'expliquer un petit peu ce que font les lignes de ton script ?
d'avance merci ;)
Piccolupo 13
21 août 2007 à 20:48
Merci beaucoup en tout cas,
Je te souhaite une bonne soirée et à bientôt!
Piccolupo13