Parser un fichier csv en bash
Résolu
maxfbt
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Comment puis-je scripter en shell ceci :
...en partant du principe que "monoccurence" sera lu dans un fichier csv de plusieurs lignes.
J'ai essayé ça mais :
Le parsing marche mais pas la copie de fichier...
Un petit coup de pouce ne serait pas de refus !
Merci à vous.
Max
Comment puis-je scripter en shell ceci :
find . ! -regex ".*/\..*" -name "monoccurence.xml" -print -exec cp {} ~/Desktop/monrep \;
...en partant du principe que "monoccurence" sera lu dans un fichier csv de plusieurs lignes.
J'ai essayé ça mais :
#!/bin/sh
while IFS=';' read monoccurrence
do line="$monoccurrence"
find . ! -regex ".*/\..*" -name "$monoccurrence" | cp {} ~/Desktop/monrep \;
done < fichiersource.csv
Le parsing marche mais pas la copie de fichier...
Un petit coup de pouce ne serait pas de refus !
Merci à vous.
Max
3 réponses
-
Salut,
Pourquoi tes deux commandes diffèrent ? (le pipe dans la seconde)
A quoi sert le 'line="$monoccurrence"' ?
-
Merci pour ta réponse zipe31.
J'ai tenté de chaîner l'action de copier les fichiers avec un pipe.
En effet j'ai d'abord testé ça :
#!/bin/sh while IFS=';' read monoccurrence do line="$monoccurrence" find . ! -regex ".*/\..*" -name "$line" -print -exec cp {} ~/Desktop/monrep done < fichiersource.csv
Mais ça ne marche pas...
Le csv est composé d'un nom de fichier par ligne (toto.xml, titi.xml, tata.xml, etc.)
Mon script arrive bien à parser mon fichier csv et à trouver un fichier, mais je n'arrive pas exécuter la commande suivante, à savoir copier le fichier trouvé dans mon répertoire local.-
Essaie de rajouter un echo devant la commande "cp" afin de voir ce qui pourrait clocher ;-\
#!/bin/sh while IFS=';' read monoccurrence do line="$monoccurrence" find . ! -regex ".*/\..*" -name "$line" -print -exec echo "cp {} ~/Desktop/monrep" done < fichiersource.csv
Je me répète : A quoi sert le 'line="$monoccurrence"' ? -
-
-
-
Merci zep31.
Le echo m'a permis de voir que le script dans sa version 1 marchait en réalité.
Merci encore pour votre aide.