Modification d'arborescence en shell

Résolu
Bonjour,

je souhaiterai avoir un script shell qui modifierai une arborescence que j'ai à partir d'un fichier (modif.txt) qui donnerait dans un premier temps le nom d'un repertoire à modifier, puis dans une 2eme colonne l'arborescence à faire.

explication: j'ai des fichiers dans un repertoire "toto" et dans mon fichier modif.txt j'ai "toto test1/arbo1/arbo2" ce qui signifit que je dois créer l'arborescence "test1/arbo1/arbo2" et que je dois mettre tout le contenu de "toto" dedans

quelqu'un pourrait il m'aider? :(
Configuration: Windows XP
Firefox 1.5.0.11
Unix

6 réponses

  1. merci!

    mais je voulais savoir comment peut-on différencier chaque ligne du fichier modif.txt?
    étant donné que là le $old_rep avec le code que tu m'as donné contiendra tout le reste du fichier aussi...
    jvoulais faire une itération sur tout le fichier modif.txt pour que pour chaque ligne il change la premiere colonne (ki s'agit de l'ancien repertoire) par la nouvele arborescence de la colonne 2

    ?
    1
  2. Modérateur
    Salut,

    Donnes-nous davantage de détails, à savoir :
    - le contenu actuel de ton répertoire toto
    - le contenu du fichier modif.txt
    - les parties à prendre en compte
    - une perspective de l'arborescence finale et ce qui doit s'y trouver dedans

    Merci :-))
    0
    1. re!

      alors pour répondre à tes questions:
      - le contenu de toto: des fichiers (type txt ou xls)
      - le contenu de modif.txt: il s'agit de plusieurs lignes contenant pour chacune d'elles 2 champs, le premier designant le repertoire où recuperer le contenu (ici "toto") et le 2eme champ il s'agit de la nouvelle arborescence à mettre en place (ici "test1/arbo1/arbo2") et dc à y mettre le contenu
      -perspective de l'arborescence finale:
      au lieu d'avoir le repertoire "toto" avec son contenu, nous avons le repertoire "test1" qui a à l'interieur un repertoire "arbo1" qui lui même a un repertoire "arbo2" et qui celui ci contient tous les fichiers qui étaient contenu precedemment dans "toto"

      si je ne suis toujours pas clair dites le moi :(

      merci
      0
      1. Modérateur
        Re-
        #! /bin/bash
        
        old_rep=$(cat modif.txt | cut -d" " -f1)
        new_rep=$(cat modif.txt | cut -d" " -f2)
        
        mkdir -p "$new_rep"
        mv ${old_rep}/* ${new_rep}/
        rm -rf ${old_rep}
        ls -R *
        A adapter, notamment pour les chemins et aussi la présence ou non de slash (en fin) dans le nom des répertoires fournis dans le fichier "modif.txt".
        0
        1. oki merci!

          mais j'ai une dernière question...
          quand je récupère chaque ligne, j'ai besoin à partir de chaque ligne qui se trouev dans une variable $ligne la couper en fonction d'un séparateur defini
          j'ai essayé avec la commande cut -d" " mais il ne veut qu'un fichier
          je ne sais pas comment lui spécifier qu'il s'agit de couper en fonction de l'espace d'une variable

          ?
          0
          1. Modérateur
            [jp@MDK tmpfs]$ var="un et un = deux"
            
            [jp@MDK tmpfs]$ echo $var
            un et un = deux
            
            [jp@MDK tmpfs]$ echo $var | cut -d= -f1
            un et un
            
            [jp@MDK tmpfs]$ echo $var | cut -d= -f2
             deux
            
            [jp@MDK tmpfs]$ 
            ;-))
            0
        2. merci c'est bon mon script marche :)
          jte remercie bcp!
          0