Awk: récupérer les variables dans un fichier csv

Bonjour,

Je voudrais savoir comment calculer le nombre de variable que j’ai dans une ligne d’un fichier csv.
ex: prénom;nom;adresse;codepostal;telephone;adressecomp; => 6 champs.
Je veux aussi pouvoir récupérer chaque champs pour lancer une recherche SQL. Le nombre de champ peut varier, c’est pour ça que j’ai besoin de savoir combien j’en ai.

faire un truc du type:

for $nombre_champ>0 do nom_champ=`echo $ligne | awk -F";" '{ print $nombre_champ }'` psql my_db << EOF SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME=$nom_champ; EOF nombre_champ=$nombre_champ - 1 done
Idéalement, je voudrais stoquer les résultats dans un fichier csv pour pouvoir le lire dans calc. Mais ceci fera l’objet d’une autre question, je pense.

Comment commencer mon projet pour récupérer le nombre de champs, lire chaque champ et exécuter ma recherche sql?

Merci

Je m’auto réponds:

voici ce qu’il faut faire dans un fichier script à lancer:

[code]

démarre la numérotation des lignes à partir de 1

num_ligne=1

lit le fichier csv

cat fichier.csv | while read ligne

faire tant qu’il y a des lignes dans le fichier

do

calcule le nombre de champs

nbr_champs=`echo $ligne | awk -F";" '{ print NF }'`

affiche le résultat

echo "Il y a $nbr_champs champs dans la ligne $num_ligne "

incrémente le numéro de ligne.

num_ligne=$num_ligne+1

done[/code]