Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/04/2007, 13h31   #1
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Par défaut fichier .txt : numéro de ligne => mot correspondant

Bonjour à tous,

J'ai un projet à terminer pour ce soir. J'ai choisi de créer un jeu du pendu. Le mot à trouver doit être généré aléatoirement par l'ordinateur.

Il ne me reste plus qu'une partie de cette fonction à réaliser, mais ça doit faire facilement 2h que je fait des recherches sur internet pour trouver une solution sans résultat...

J'ai donc déja codé une fonction qui sort un nombre aléatoire compris entre 0 et le nb de lignes du dico.txt dont je me sert (il y a un mot par ligne), mais je n'arrive pas du tout à trouver une solution pour écrire dans une variable $mot le mot correspondant au numéro de ligne généré ...

Si quelqu'un peut m'éclairer rapidememnt, je lui en serais très très reconnaissant ...
Nicoslash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 13h38   #2
En attente de confirmation mail
 
Avatar de gandalfar
 
Inscription : novembre 2004
Messages : 145
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 145
Points : 116
Points : 116
Envoyer un message via MSN à gandalfar
tu fait un cat -n tonfichier | grep tonnumerodeligne
gandalfar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 13h38   #3
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 451
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 451
Points : 7 564
Points : 7 564
Très vite....

Code :
mot=$(sed -e "${nolig}p" dico.txt)
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 14h04   #4
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Merci beaucoup

Je vais essayer de comprendre ces deux commandes pas à pas.
Nicoslash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 14h15   #5
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Rebonjour,

J'ai tenté les deux commandes .. la deuxième est un peu incompréhensible vu mon niveau .. la première me semblait coorect, pourtant quand je l'emploi, il me renvoit un "".

voici mon script :

Code :
1
2
3
4
5
6
nb_aleatoire=22710 (par exemple)
 
echo $nb_aleatoire
mot=`cat -n liste_mots.txt | grep nb_aleatoire`
 
echo $mot
et il me renvoit :
Citation:
>22710
>
>Fin du script
.. je ne voit pas ou est mon erreur ...
Nicoslash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 14h34   #6
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 451
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 451
Points : 7 564
Points : 7 564
J'ai été un peu vite pour répondre... mais cétait urgent

Correction :
Code :
mot=$(sed -n -e "${nb_aleatoire}p" dico.txt)
sed [options] nom_fichier : traitement de nom_fichier par l'éditeur de flux de texte sed
-n : n'afficher que les lignes sélectionnées
-e : la chaîne qui suit est une commande sed
[adresse[,adresse]]p : afficher les lignes correspondant à la plage d'adresses

Par ailleurs, la solution proposée par gandalfar te retournera toutes les lignes qui contiennent la chaîne ${nb_aleatoire} ou dont le numéro de ligne contient cette chaîne, le tout précédé du numéro de ligne.
Ainsi, si tu cherches la cinquième ligne, tu auras toutes les lignes dont le numéro contient un 5... ce qui n'est peut être pas ce que tu attends.

PS : man es ton ami
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 14h38   #7
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Merci de ces précisions c'est directement plus clair (et merci de répondre aussi rapidemment)

La commande marche parfaitement, et j'ai saisi l'ensemble de tes explications, merci beaucoup.

Bonne journée
Nicoslash est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h48.


 
 
 
 
Partenaires

Hébergement Web