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 22/10/2006, 14h51   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 15
Points : 0
Points : 0
Par défaut Comment mettre les lignes d'un fichier dans un tableau en shell

Bonjour,
J'ai un fichier user.txt qui contient les données suivantes:
Code :
1
2
3
4
5
 
user1:Robert:Polson
user2:Rachid:benmouloud
suser1:Roger:Rabit
etc ...
J'aimerais mettre le premier champ de chaque ligne du fichier dans un tableau.
Par exemple:
Code :
1
2
3
4
 
tab[0]=user1
tab[1]=user2
etc ...
Pour selectionner le premier champ c'est façile, je fais
Code :
1
2
 
cut -d: -f1 user.txt
Par contre pour mettre chaque ligne dans une case du tableau je ne vois pas comment faire. Aidez moi s'il vous plait.

Sinon une autre chose qui pourrait me dépanner ça serait de choisir la ligne du fichier que l'on souhaite afficher, vous sauriez faire cela ?
Ombrius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2006, 17h49   #2
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
j'ai réussi à créer un tableau à partir du fichier
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
 
j=0 #un compteur
for i in $(cut -d: -f1 user.txt); do # pour chaque élément qui sort du cut
    echo $i 
    tab[$j]=$i #on le met dans un tableau au rang i
    j=$j+1 #on incrémente le compteur pour créer une nouvelle case la prochaine fois
done
 
echo
echo "Affichage du tableau"
 
for i in ${tab[@]}; do
    echo $i
done
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2006, 18h04   #3
Membre chevronné
 
Avatar de reggae
 
Inscription : août 2005
Messages : 774
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 774
Points : 688
Points : 688
Pourquoi ne pas passer par un langage de script tel Perl ou Python?
Le code serait plus facile à entretenir pour un éventuel usage postérieur...
reggae est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 12h34   #4
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
la bonne question est plutot de poser le probleme, plutot que de chercher quel language :
que veut on faire avec ce fichier ? obtenir quoi ?.

Pour choisir la ligne a afficher : sur quel critere ? un champ ? un numero de ligne ?
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h34.


 
 
 
 
Partenaires

Hébergement Web