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 :
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é
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
(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
Partager