• # s/cat/cut/ ?

    Posté par (site web personnel, Mastodon) . En réponse au message Linux copy à partir d'une liste de fichiers vers des sous-répertoires à partir d'une liste aussi. Évalué à 2.

    (J'ai aussi un fichier csv complet comprenant ces 2 colonnes: nom des sous-répertoire ($valeur1), chemin du fichier ($valeur2))

    Donc tu as un fichier composé de lignes de la forme

    $valeur1$delimiteur$valeur2

    Du coup, je supposes que tu as du récupérer la liste des $valeur1 dans un autre fichier

    J'ai pu créer automatiquement les sous-répertoires en utilisant cette commande:
    xargs mkdir -p </scripts/repertoires.csv

    Tu pouvais directement opérer depuis ton fichier initial ainsi (non testé)

    cut -f 1 -d "$delimiteur" | xargs mkdir -p

    Le seul hic/piège est que tes $valeur1 ne doivent pas comporter d'espace (il y a d'autres caractères spéciaux mais les blancs sont les trucs le plus courant/fréquent auquel il faut penser) ; je n'insiste pas dessus vu que tu a déjà fait le boulot en créant un fichier /scripts/repertoires.csv qui convient (la problématique est la même en fait, mais le problème a du ne pas se présenter ou est déjà traité.)

    On peut utiliser la même approche pour l'autre partie du problème

    je souhaite copier des fichiers dont j'ai le chemin sur un fichier txt dans des sous répertoires spécifiques spécifiés dans un second fichier

    Tu peux utiliser aussi le fichier comme tu l'avais déjà fait pour les répertoires, ou utiliser le CSV comme je viens de l'indiquer

    cat /scripts/liste.txt | xargs cp % /dossierdestination
     # ou
    cut -f 2 -d "$delimiteur" | xargs cp % /dossierdestination

    Avec les mêmes précautions déjà évoquées.

    "It is seldom that liberty of any kind is lost all at once." ― David Hume