Parser un fichier csv en bash

Résolu
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

3 réponses

  1. Contributeur
    Salut,

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

    A quoi sert le 'line="$monoccurrence"' ?
    1. Contributeur
      J'avais oublié... à quoi ressembles les entrées dans le fichier "fichiersource.csv" ?
  2. 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.
    1. Contributeur
      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"' ?
    2. Contributeur
      hello
      il manque un
      \;
      à la fin du find,non ?
    3. Contributeur
      Rhâ le boulet que je fais ;-((

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