|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
Bonjour,
J'aimerai parser un fichier CSV qui contient 3 colonnes. J'ai essayé avec awk et une boucle for, mais cela ne fonctionne pas. J'aimerai aussi récupérer la valeur d'une colonne/ligne dans des variables $NOM, $PRENOM, $ PASSWORD pour effectuer un traitement par la suite. Je pense que tout le traitement doit se faire dans une boucle final pour effectuer le traitement de toutes mes lignes/colonnes de mon fichier CSV Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 709 ![]() |
La boucle me semble inutile puisque awk travaille ligne par ligne. Mais sans exemple, c'est difficile de se prononcer.
Donne-nous un exemple typique en expliquant bien ce que tu veux capturer.
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT Jabber: ripat at im.apinc.org |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
ok désolé
fichier CSV : Arnaud;stan;gtfED45 Toto;robert;4554d Mickeal;dupont;554fd ensuite j'aimerai pouvoir lire ce fichier ligne par ligne, en récupérant : $PRENOM="arnaud" $NOM="stan" $PASSWORD="gtfED45" pour ensuite traiter ces variables... jusqu'a la fin du fichier |
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Ça doit correspondre à ce que tu veux
Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
||
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
J'avais fais quelque chose de similaire, mais avec ton script, comme le mien, il y a une erreur :
line 5:syntax error near unexpected token 'do line 5:'do |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
Je ne comprend pas pourquoi ca ne fonctionne pas ! J'ai un bouquin sous les yeux et ils écrivent le for de la même manière !!!
|
|
|
00
|
|
|
#7 | |
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Citation:
Si tu pouvais mettre en ligne la partie de ton script posant problème, ce serait plus facile pour t'aider
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|
|
|
00
|
|
|
#8 |
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
bah j'ai repris ton script en faite...
|
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
Si tu veux juste récupérer une colonne, cut marche très bien aussi.
Si le but est de lire le fichier ligne par ligne, utiliser while read sera plus rapide et plus propre. Le script de BlaireauOne marche bien chez moi (sous sh, bash et zsh). Je ne vois pas d'où peut venir le problème. Tu utilises bien Bash ? Eventuellement, essaie ça : Code :
|
||
|
|
00
|
|
|
#10 | |||||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Citation:
Code :
Résultat : Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|||||
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
bah merde c'est bizarre !
oui j'utilise bash sous fedora ! je vais recopier le script ! j'avais le même problème au boulot sur une fedora aussi !! |
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
oué rien à faire, sur fedora aucun des scripts proposés ici ne marche...
Je ne comprend pas... |
|
|
00
|
|
|
#13 | ||||||
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
bon, j'ai fais des petits exo sur le for,do,done pour me familliariser avec la syntaxe :
exemple : Code :
Code :
j'ai testé de faire : Code :
pourtant j'ai tester le cat et il semble bien fonctionné... |
||||||
|
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
Très étrange.
Que donne "bash --version" ? Ni la version avec le for, ni celle avec le while ne fonctionnent ? Testes-tu en mode interactif ou par un script exécutable (essaie avec les deux) ? Essaie de simplifier les exemples donnés pour trouver d'où vient l'erreur. Code :
EDIT: je viens de voir ta réponse entre temps. Si le problème vient du cat, est-ce que ça marche avec le while read ? |
||
|
|
00
|
|
|
#15 | ||
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
tien une question,
si je fais : Code :
|
||
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
Visiblement, on n'a vraiment pas la même version de Bash...
Essaie : Code :
FICHIER=$(cat /home/afourquemin/file.cvs) |
|
|
00
|
|
|
#17 | ||
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
oui ca fonctionne !
bash --version : GNU bash, version 3.1.17(1) - release (1686-redhat-linux-gnu) Copyright (c) 2005 Free Software Foundation, Inc. Code :
|
||
|
|
00
|
|
|
#18 | |||
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#19 | |||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
Citation:
Code :
FICHIER="`cat /home/afourquemin/file.cvs`" Ton fichier d'entrée, c'est bien celui que tu avais donné avant ? En protégeant bien les variables, ça donne : Code :
|
|||
|
|
00
|
|
|
#20 |
|
Membre actif
![]() Arnaud Inscription : décembre 2006 Messages : 871 ![]() |
je pense que les ; sont interprétés avec le for...
je vais tester tes lignes de codes |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com