Modification d'arborescence en shell

Résolu/Fermé
chtiludoo - 14 mai 2007 à 12:38
chtiludoo Messages postés 7 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 3 août 2007 - 15 mai 2007 à 12:47
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? :(
A voir également:

6 réponses

chtiludoo Messages postés 7 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 3 août 2007 1
14 mai 2007 à 15:22
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 mai 2007 à 17:09
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 mai 2007 à 13:19
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
chtiludoo Messages postés 7 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 3 août 2007 1
14 mai 2007 à 13:52
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 mai 2007 à 14:09
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chtiludoo Messages postés 7 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 3 août 2007 1
15 mai 2007 à 11:06
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
15 mai 2007 à 12:33
[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
chtiludoo Messages postés 7 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 3 août 2007 1
15 mai 2007 à 12:47
merci c'est bon mon script marche :)
jte remercie bcp!
0