condition if et recherche des motifs
Bonjour
J’ai un fichier contenant chaque ligne un terme et son catégorie grammaticale.
Je cherche le motif 1 dans une ligne et le motif 2 dans une ligne. Si les deux ligne contiennent le même terme, je veux supprime la ligne où il y le motif 2. Est il possible d’écrire la valeur de la ligne du motif 2 comme $mot3=$5. J’ai aussi un problème pour supprimer pour la ligne du 2e motif. Merci beaucoup.
Ex :
livre,livre.n+py=xxx
livre,livre.v+py=xxx
pouvoir,pouvoir.n+py=xxx
pouvoir,pouvoir.v+py=xxx
en,en.pre+py
en,en.pron+py
Voici mon programme
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| while ($ligne = <INFILE>){
# recherche du motif 1 qui contient le cat "n" et du motif 2 contenant le cat "ng"
if($ligne=~/^(([^,]+),([^.]+)\.n\+py.+)/ eq $ligne=~/^(([^,]+),([^.]+)\.ng\+py.+)/){
$mot1=$1;
$mot2=$2;
$mot3=$5;
#print OUTFILE "$mot1\n";
}
if ($mot2 eq $mot5){
#print OUTFILE "$mot1\n";
#print OUTFILE "$mot3\n";
}
print OUTFILE "$mot1\n";
#print OUTFILE "$ligne\n";
} |