#26 Le 12/09/2008, à 13:36
- Totor
Re : Questions d'un débutant (manipulation de texte)
Normal que tu en trouves autant. tes phrases sont coupées par des sauts de lignes !
Il faut donc considérer la chose autrement et plutôt partir du cas 1.
Dans ce cas, c'est plutôt :
nb=$(grep -c '^[[:blank:]]*$' fichier.txt)
l'objectif étant de compter les lignes vides.
Mais pour que ce soit toujours vrai, il faut que le fichier se termine par une ligne vide.
Ensuite, il se peut que plusieurs lignes vides se succèdent. il faut donc supprimer les doublons.
Cela donne donc :
nb=$(uniq fichier.txt|grep -c '^[[:blank:]]*$')
Maintenant, pour tenir compte du cas "dernière ligne non vide" :
nb1=$(uniq fichier.txt|grep -c '^[[:blank:]]*$')
nb2=$(uniq fichier.txt|tail -1|grep -vc '^[[:blank:]]*$')
nbparagraphe=$(($nb1+$nb2))
Dernière modification par Totor (Le 12/09/2008, à 13:49)
-- Lucid Lynx --
Hors ligne
#27 Le 12/09/2008, à 13:38
- iuchiban
Re : Questions d'un débutant (manipulation de texte)
iuchiban a écrit :nbParagraphe = 8-6+1 donc
tu vois 7 lignes non vides dans le fichier ?
A=1ère
B=2nde
C=3ème
D=4ème
E=5ème
F=6ème....
Dans ce cas, avec seulement une ligne vide qui sépare les différents paragraphes, tu as bien 3 paragraphes (8-6+1)
Mais si tu as des paragraphes séparés par plusieurs lignes vides, ou des lignes vides en début et fin de fichier, alors ce mode de calcul tombe à l'eau.
Et le +1 n'est là que pour avoir le bon compte (si tu comptes en UNIX, tu as les paragraphes 0, 1 et 2 donc 8-6 )
Là, dans le texte de achara, le calcul sera bon
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#28 Le 12/09/2008, à 13:41
- achara
Re : Questions d'un débutant (manipulation de texte)
Je sais pas ou tu habites, mais je te dois un restau !
Hors ligne
#29 Le 12/09/2008, à 13:57
- Totor
Re : Questions d'un débutant (manipulation de texte)
Pour finir ton exercice :
* Compter le nombre de phrase dans un texte :
nb=$(grep -o '[\.\!\?:]' fichier.txt|wc -l)
Mais ceci est uniquement valable si TOUTES les phrases sont terminées par . ou ? ou ! ou :
Du coup, tu as toutes les infos pour trouver la moyenne des phrases par paragraphe.
Dernière modification par Totor (Le 12/09/2008, à 14:10)
-- Lucid Lynx --
Hors ligne
#30 Le 12/09/2008, à 14:13
- achara
Re : Questions d'un débutant (manipulation de texte)
Oui, cela fonctionne
Par contre, j'ai encore quelques derniers soucis...
* Pour "compter" la fréquence de la ponctuation d'un texte, j'imagine qu'il faut utiliser la commande "tr", pour ne garder que la ponctuation ([:punct:]), puis utiliser sort et uniq pour en afficher la fréquence... je ne pense pas que la fréquence le prof entende "la fréquence par rapport au nombre de caractéres total" mais par exemple ; = 4 fois , = 19 fois, .=5 fois...
* Pour - Sortir les 25 mots non vides les plus fréquents
- Sortir les 25 collocations de mots non vides les plus fréquentes
Je pense qu'il faut faire une combinaison de grep / uniq et sort (j'ai les cours sous les yeux) mais là encore, je n'arrive pas à trouver la syntaxe
J'avoue avoir 'l'idée', mais je ne trouve absolument pas la syntaxe de la commande
Hors ligne
#31 Le 12/09/2008, à 14:35
- achara
Re : Questions d'un débutant (manipulation de texte)
J'ai réussi à me débrouiller pour le coup de la ponctuation, en réutilisant la commande te Totor et en la modifiant un peu, je pense qu'il y avait une autre méthode plus "juste", mais la mienne fera l'affaire.
Il ne reste que sortir les 25 mots non vides les plus fréquents, sortir les 25 collocations de mots non vides les plus fréquentes.
Par collocation, le prof entend "deux mots qui se suivent, toujours les mêmes".
Quelqu'un à une idée ?
Hors ligne
#32 Le 12/09/2008, à 14:37
- Totor
Re : Questions d'un débutant (manipulation de texte)
pour info, j'ai modifié mon premier poste car il était erroné sur le calcul de caractères....
sinon,je pense que ton prof entend par fréquence est plutôt : tous les "n" mots ou tous les "n" caractères...
Mais sinon, pour trouver les n mots les plus utilisés, c'est assez "simple".
1. transformer les caractères de ponctuation et les espaces en \n (de cette façon, on met un mot par ligne) et on supprime les lignes blanches
2. compter leur fréquence
3. trier
4. récupérer les n premières lignes
sed 's/([[:punct:]]|[[:blank:]])/\n/g;/^$/d' fichier.txt|uniq -c|sort -r|head -25
Bon, désolé mais je vais devoir te laisser...
Dernière modification par Totor (Le 12/09/2008, à 14:39)
-- Lucid Lynx --
Hors ligne
#33 Le 12/09/2008, à 15:19
- iuchiban
Re : Questions d'un débutant (manipulation de texte)
J'ai réussi à me débrouiller pour le coup de la ponctuation, en réutilisant la commande te Totor et en la modifiant un peu, je pense qu'il y avait une autre méthode plus "juste", mais la mienne fera l'affaire.
Il ne reste que sortir les 25 mots non vides les plus fréquents, sortir les 25 collocations de mots non vides les plus fréquentes.
Par collocation, le prof entend "deux mots qui se suivent, toujours les mêmes".
Quelqu'un à une idée ?
Euh, tu as ce travail à faire depuis combien de temps???
Parce que là, ca devient compliqué.
Pour le premier, il suffit de :
- faire un tableau dynamique
- lire un mot
- si ce mot existe dans le tableau, incrémenter le compteur de 1
- si le mot existe pas, ajouter le mot et incrémenter de 1
- trier le tableau suivant les compteurs
Pour le deuxième, idem sauf que tu lit un mot, s'il existe, tu lit le suivant, et tu comptes.
Il doit falloir une semaine je pense pour faire ça quand on jamais scripté.
Tu fais quoi comme études et où??
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#34 Le 12/09/2008, à 20:28
- Totor
Re : Questions d'un débutant (manipulation de texte)
Heeeeeeeeeuuu, t'as vu mon poste de 15h37 ? Pas besoin de faire tout ça
et pour les collocations, c'est un poile pareil !:D
Dernière modification par Totor (Le 12/09/2008, à 20:28)
-- Lucid Lynx --
Hors ligne
#35 Le 12/09/2008, à 21:28
- achara
Re : Questions d'un débutant (manipulation de texte)
C'est du tout bon, j'ai envoyé le compte rendu à mon prof, je vous remercie pour votre aide, je m'en serais jamais sorti !
Hors ligne