Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
bash et remplacement de chaine
Envoyé par: Choubs

hello

je souhaite dupliquer une arborescence sous Slack, et faire toute une série de traitements dedans... mais je n'arrive pas à générer, ou gérer, le nom des dossiers cibles...

voici mon petit script
#!/bin/bash
maSource='/mnt/tmp1/home/choubs/source'
maCible='/mnt/tmp1/home/choubs/cible'
find "$maSource" -type d -name '*' | while read monDossier
do
        dossierCible=$(echo "$monDossier" | sed "s/$maSource/$maCible")
        echo "$dossierCible"
done

et bien sur, ca ne marche pas... qqu'un aurait une idée ???
je tente pas mal de trucs entre sed et tr...

merci de vos infos et coups de pouce grinning smiley


Poste le Saturday 19 November 2005 22:29:57
Répondre     Citer    
Re: bash et remplacement de chaine
Envoyé par: Jonesy's

Bonsoir,

#!/bin/bash
maSource='/mnt/tmp1/home/choubs/source'
maCible='/mnt/tmp1/home/choubs/cible'
find "$maSource" -type d -name '*' | while read monDossier
do
dossierCible=$(echo "$monDossier" | sed "s@$maSource@$maCible@")
echo "$dossierCible"
done

Pas testé, mais pour traiter des chaines de caractères contenant "/" avec sed il faut utiliser un autre séparateur, ici "@".

@+

--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Saturday 19 November 2005 22:49:36
Répondre     Citer    
Re: bash et remplacement de chaine
Envoyé par: Choubs

Que te dire sinon 10^n merci(s) !

ca marche au poil !

dire que ca fait des soirées que je passe dessus...

merci encore Jonesy's O:-)

Poste le Sunday 20 November 2005 13:10:23
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
bash et remplacement de chaine
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons