Rebonjour !
J'ai un dernier script à écrire et je ne vois vraiment pas trop comment m'y prendre.
L'idée étant qu'on fournit au script un fichier et optionnellement un mot.
Si on fournit juste le nom de fichier il nous donne la liste de tous les mots employés avec le nombre d'occurrences et si on fournit un mot il compte le nombre d'occurrences de ce mot.
Et pour le coup j'ai vraiment aucune idée de la méthode à employer :/...
# Hmm
Posté par Pascal Terjan (site web personnel) . Évalué à 3.
Tu remplaces les espaces et signes de ponctuation par des retour chariot, tu pipe ca a sort puis à uniq -c
[^] # Re: Hmm
Posté par skeespin (site web personnel) . Évalué à 2.
il n'y a qu'a suivre les fleches !
[^] # Re: Hmm
Posté par David FRANCOIS (site web personnel) . Évalué à 1.
J'ai juste pas encore trop l'esprit tourné comme il faut :)
Mais ouais il vaut mieux une piste qu'on explore qu'une commande obscure qu'on pige pas.
[^] # Re: Hmm
Posté par David FRANCOIS (site web personnel) . Évalué à 2.
Donc si j'imagine bien ce sera du sed pour remplacer espaces et tout ca. D'après man, uniq me donnera une occurence unique pour chaque mot, ligne par ligne. Donc d'après moi, je reprends mot par mot et je scanne et je scanne en comptant les occurrences.
Oh my god, non uniq le fait déja comme un grand !
Donc du coup si je veux un seul mot je sors le grep et sinon je le laisse tourner...
J'ai bon ? J'ai bon ? :)
Ca a l'air ultra facile dit comme ca !
Bon je vais trifouiller un peu et je me ramène avec mes questions !
[^] # Re: Hmm
Posté par totof2000 . Évalué à 3.
[^] # Re: Hmm
Posté par David FRANCOIS (site web personnel) . Évalué à 1.
Mes cours unix sont soporifiques, donnés dans un anglais affreux par un prof sympa mais vraiment très chiant.
J'aime beaucoup quand on me donne une piste plutôt que de me laisser complètement dans le vent ou alors quand on me donne une commande obscure en me disant tais toi et tape...
Pour l'instant j'ai du mal a remplacer les espaces par des retours chariots.
Il me manque juste la manière de dire 'retour chariot' en sed
J'ai essayé des trucs du style
sed 's/ /\n/g' mais ca ne marche pas et je ne trouve pas d'exemple qui convienne....mhh
[^] # Re: Hmm
Posté par David FRANCOIS (site web personnel) . Évalué à 1.
[^] # Re: Hmm
Posté par David FRANCOIS (site web personnel) . Évalué à 1.
[^] # Re: Hmm
Posté par David FRANCOIS (site web personnel) . Évalué à 1.
[^] # Re: Hmm
Posté par netsurfeur . Évalué à 3.
En plus, tu dois trier avant de passer dans 'uniq' qui ne traite que des données triées.
Ca donne, lorsque tu n'as pas à restreindre à un seul mot:
Dans le cas où tu ne dois traiter qu'un seul mot, il vaudrait mieux faire le grep à la place du sort plutôt qu'après uniq (ça évite de passer du temps à trier tout un fichier pour ne garder que quelques mots):
Il ne te reste plus qu'à trouver comment remplacer sort par grep en fonction du nombre d'arguments ;)
[^] # Re: Hmm
Posté par bigben99 . Évalué à 1.
[^] # Re: Hmm
Posté par totof2000 . Évalué à 3.
[^] # Re: Hmm
Posté par liberforce (site web personnel) . Évalué à 2.
http://www.tldp.org/LDP/abs/html/index.html(...)
Guide shell script en français (le même mais un peu moins à jour)
http://www.bsdbooks.net/shells/scripting/fr/(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.