2 votes

ajouter le nom du dossier au nom du fichier lors de la copie - espace dans le nom du dossier

J'ai utilisé une boucle pour copier les données d'un groupe externe vers mon répertoire de travail, en ajoutant le nom du dossier au début du nom du fichier. La boucle for est basée sur cette question précédente. Ajoute une partie du nom du dossier à tous les .gz qui s'y trouvent

Depuis que j'ai posé cette question, le groupe externe a simplifié sa structure de dossiers, mais a maintenant ajouté " (2) " à certains noms de dossiers (je n'ai pas la possibilité d'influencer la façon dont le groupe nomme ses fichiers, c'est une entreprise géante). L'espace a cassé ma boucle et j'ai besoin d'aide pour la réparer.

La structure des fichiers sur le groupe externe

  Samples/SampleName1/Files/SampleID1_uniqueNumber.gz
  Samples/SampleName2/Files/SampleID2_uniqueNumber.gz
  Samples/SampleName3/Files/SampleID3_uniqueNumber.gz
  Samples/SampleName3 (2)/Files/SampleID3_uniqueNumber.gz

Ce que je veux dans mon dossier de destination (tous les échantillons sont déplacés vers une seule destination)

  SampleName1.SampleID1_uniqueNumber.gz
  SampleName2.SampleID2_uniqueNumber.gz
  SampleName3.SampleID3_uniqueNumber.gz
  SampleName3.SampleID3_uniqueNumber.gz

Ma boucle for actuelle qui copie correctement tout sauf le dernier échantillon. Le numéro unique devrait être suffisamment unique pour empêcher les 2 SampleName3 de s'écraser l'un l'autre.

   for f in ../pathToData/Samples/*/Files/*.gz;
    do s=${f##../pathToData/Samples/}; 
    s=${s%%/*};
    cp $f "/destinationFolder/"$s"."${f##*Files/};
    done

Comment puis-je effacer l'espace pour que cp voit " (2) " comme une partie du nom du fichier original et non " (2) " comme le dossier de destination ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X