Importer des fichiers csv dans un tableau en shell
Résolu
loulou
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai besoin de votre aide car je suis totalement perdu.
J'ai un certains nombre de fichers.csv.
Je dois écrire un script qui cherchera dans le sous-répertoire tous les fichiers et qui les mettra dans d’un tableau.. Chaque fichiers csv doit se retrouver dans une case du tableau.
Quelqu'un pour m'orienter???
merci
J'ai besoin de votre aide car je suis totalement perdu.
J'ai un certains nombre de fichers.csv.
Je dois écrire un script qui cherchera dans le sous-répertoire tous les fichiers et qui les mettra dans d’un tableau.. Chaque fichiers csv doit se retrouver dans une case du tableau.
Quelqu'un pour m'orienter???
merci
A voir également:
- Importer des fichiers csv dans un tableau en shell
- Tableau word - Guide
- Classic shell - Télécharger - Personnalisation
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Renommer des fichiers en masse - Guide
2 réponses
hello
1 fichier par élément du tableau
1 fichier par élément du tableau
$ ls *csv
f1.csv f2.csv f3.csv
$ more *csv
::::::::::::::
f1.csv
::::::::::::::
a;b;c;d
::::::::::::::
f2.csv
::::::::::::::
1;2;3;4
::::::::::::::
f3.csv
::::::::::::::
1000;1001;1002;1003;1004
$ readarray -t t < <(cat *csv)
$ echo ${#t[@]}
3
$ printf "%s\n" "${t[@]}"
a;b;c;d
1;2;3;4
1000;1001;1002;1003;1004
Bonjour,
C'est si compliqué que ça de chercher un minimum ?
C'est si compliqué que ça de chercher un minimum ?
#!/bin/bash
set Tableau
awk 'BEGIN { FS=" " }
{ligne [NR] = $0
ref1 [NR] = $2
ref2 [NR] = $3
ref3 [NR] = $4 ## mon fichier à 4 lignes
}
END {
print NF
print NR
for ( i = 1 ; i <= NR ; i++ ){ printf( Tableau=ligne ) }
} ' fic1.csv
cette commande awk , récupère dans un premier temps toutes les lignes de fichier.csv en les mettant dans le tableau . puis après imprime à l'écran toute les lignes du fichier .
Suis-je sur la bonne voie???
L'objectif pour moi étant de concaténer le contenu du tableau par la suite.
Ps: j'ai plusieurs fichiers
set Tableau
awk 'BEGIN { FS=" " }
{ligne [NR] = $0
ref1 [NR] = $2
ref2 [NR] = $3
ref3 [NR] = $4 ## mon fichier à 4 lignes
}
END {
print NF
print NR
for ( i = 1 ; i <= NR ; i++ ){ printf( Tableau=ligne ) }
} ' fic1.csv
cette commande awk , récupère dans un premier temps toutes les lignes de fichier.csv en les mettant dans le tableau . puis après imprime à l'écran toute les lignes du fichier .
Suis-je sur la bonne voie???
L'objectif pour moi étant de concaténer le contenu du tableau par la suite.
Ps: j'ai plusieurs fichiers
Je vous remercie pour votre aide. Je vais tester cela et essayer de compléter pour voir si cela fonctionne.
Je vous tiens informé.
Merci
unset t; for f in *.csv; do t[${#t[@]}]=$(cat $f); done
Car mes fichiers sont dans un sous répertoire et il ne me les trouve pas.