Bonjour à tous,

Je ne connais pas encore toute les possibilités offertes par Perl, et j'aurais besoin d'aide svp concernant un problème de traitement de fichier texte via un script Perl (et uniquement en Perl).

Mon fichier texte (il s'agit d'un lexique) se présente sous la forme suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
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
etc.

(NB : les blancs entre les colonnes sont des tabulations.)

J'aimerais dans un premier temps pourvoir opérer un tri sur la première colonne, c-à-d obtenir l'affichage suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
fait    ADJ     fait
fait    NOM     fait
fait    VER:conj        faire
fait    VER:pper        faire
faite   VER:pper        faire
faites  VER:pres        faire
faits   VER:pper        faire
faitout NOM     faitout
faitouts        NOM     faitout
ensuite mon problème principal est le suivant: si j'ai une ligne où l'élément de la première colonne est répété
(dans mon exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
fait    ADJ     fait
fait    NOM     fait
fait    VER:conj        faire
fait    VER:pper        faire
)
j'ai besoin de regrouper ces lignes en ne gardant que le mot de la première colonne mais en conservant les informations des colonnes 2 et 3 (des autres lignes) sur la première ligne, afin d'obtenir le format suivant (les blancs devant toujours être des tabulations) :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
fait    ADJ     fait	NOM     fait	VER:conj        faire	VER:pper        faire

et j'ai besoin de faire ça dans tout mon fichier à chaque fois que ce cas de figure se présente (avec d'autres mots que "fait"), le tout dans un script...

Pour l'instant j'en suis là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#!/usr/bin/perl -w
while(<>)
{
 
}
...


Je ne sais pas si je suis suffisamment clair, mais si quel'qu'un a une piste pour réaliser ça, ce serait sympa...
Un grand merci d'avance pour vos suggestions !

Amicalement,

Piccolupo 13