Parser un fichier csv en bash

Résolu
maxfbt -  
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
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
A voir également:

3 réponses

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Pourquoi tes deux commandes diffèrent ? (le pipe dans la seconde)

A quoi sert le 'line="$monoccurrence"' ?
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
J'avais oublié... à quoi ressembles les entrées dans le fichier "fichiersource.csv" ?
0
maxfbt
 
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.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
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"' ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
il manque un
\;
à la fin du find,non ?
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Rhâ le boulet que je fais ;-((

Merci dubcek ;-))
0
maxfbt
 
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.
0