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 15/05/2007, 13h52   #1
Membre du Club
 
Inscription : mars 2002
Messages : 228
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 228
Points : 55
Points : 55
Par défaut parser un fichier dans un tableau

Bonjour à tous, je voudrai savoir comment récupérer le contenu d'un fichier texte dans un tableau, à savoir une ligne par occurrence.
J'ai bien fait ce bout de code mais il ne semble pas fonctionner.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
	# Parcours le fichier des utilisateurs 
	for namegroup in `cat /etc/group` 
	do 
		# Affecte les valeurs de chaque ligne dans le tableau 
		listegroup=$namegroup  
		#Affiche la ligne courante du tableau 
		echo "$i - ${listegroup[$i]}" 
 
		# Passe à la ligne suivante 
		i=$(($i+1)) 
	done
Pouvez vous me donner un coup de main svp merci d'avance
bleuerouge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 14h46   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Y a eu un post hier ou avant-hier sur un truc plus ou moins identique en bourne shell, cherche sur le forum.

__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 15h47   #3
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
J'ai fait un petit script en shell qui parse différents fichiers et j'ai été étonné par la lenteur du processus.
Peut être que mon script n'est pas super optimisé, mais c'est quand même très très lent.

Si tu veux parser un fichier, essaie d'utiliser un langage adapté genre perl.

Ta variable i n'est pas initialisée.
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 15h48   #4
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
Citation:
Envoyé par ggnore
Si tu veux parser un fichier, essaie d'utiliser un langage adapté genre perl.

flex/bison parsent aussi très vite... tout dépend aussi du traitement que tu veux faire par la suite
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 23h09   #5
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par bleuerouge
Bonjour à tous, je voudrai savoir comment récupérer le contenu d'un fichier texte dans un tableau, à savoir une ligne par occurrence.
En bash, dans le genre

Code :
1
2
3
4
5
6
7
8
9
10
 
declare -a TabLine
typeset -i Irecord=1
 
 while read GroupEnreg
 do
   TabLine[$Irecord]=$GroupEnreg
   echo "$Irecord - ${TabLine[$Irecord]}"
   ((Irecord=$Irecord+1))
 done <  /etc/group
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 09h02   #6
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
en bash et en une ligne

tab=( $( cat /etc/group ))
becket 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 16h16.


 
 
 
 
Partenaires

Hébergement Web