IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

un script pour Lister, Modifier, remplacer des noms de fichiers pour un upload?


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 49
    Par défaut un script pour Lister, Modifier, remplacer des noms de fichiers pour un upload?
    Bonjour, voici mon problème:

    J'ai mon programme principale dans un répertoire 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ls chemin1/rep1/
    fichier1.f90 fichier1.f90~ fichier1.o fichier2.f90 .... etc...
    J'ai les fichiers que j'ai modifié dans un autre répertoire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ls chemin2/rep2/
    fichier1_modified.f90 fichier2_modified.f90 .... etc...
    Tout les fichiers du répertoire 1 ne se trouvent pas tous dans le répertoire 2 par contre ils auront les même noms avec "modified" à la fin.

    Ce que j'aimerais c'est automatiquement:
    1- copier les fichier du répertoire 1 de fichier1,f90 à fichier_old.f90 au cas ou l'upload ne fonctionnerait pas.

    2- copier tout les fichiers présents dans le repertoire 2 vers le répertoire 1. fichier1_modified.f90 remplacerait donc fichier1.f90

    3- faire un makefile et lancer (mais ça je sais faire c'est bon

    Donc pour les étapes 1 et 2, comme je ne suis pas très familier des scipts shell je ne sais pas trop comment tronquer mes chaines de carractères pour modifier les noms.

    Sauriez-vous comment procéder simplement pour les étapes 1 et 2 en particulier pour que le bon fichier remplace le bon et pour modifier les noms ?

    merci beaucoup de votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut
    Bonjour,

    Suite à ta demande je t'ai écrit un petit script qui te permettra de sauvegarder tes fichiers et de dupliquer les fichiers de rep1 vers rep2 avec leurs bons noms

    A mon avis on peu faire autrement voir peut être plus simple mais cette solution fonctionne par contre je suis preneur pour une solution plus simple

    Le programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #!/bin/ksh
     
    #Debut de la procedure
     
    #Sauvegarde du repertoire avant Upload
    tar -cvf /sauvegarde/savfichier.tar /tmp/rep1/fichier*
     
    #Supression du fichier d'analyse pour copier les fichiers
    rm /tmp/lstfic
     
    #Boucle pour création du fichier d'analyse des fichiers
    for i in `ls -al|grep fichier|awk '{print $9}'`
    do
    if [ $? -eq 0 ]
    then
    #Constitution du fichier d'analyse
    echo $i 1>>/tmp/lstfic
    fi
    done
     
    #Boucle pour duplication des fichiers
    for v in `cat /tmp/lstfic|grep fichier|awk -F"_" '{print $1}'`
    do
    if [ $? -eq 0 ]
    then
    #Copie des fichiers $v_modified.f90 du répertoire 2 vers le répertoire 1 et rennomage des fichiers en $v.f90
    cp '/tmp/rep2/'$v'_modified.f90' /tmp/rep1/$v.f90
    fi
    done
     
    #Fin de la procedure
     
    #On passe au Makefile
    A+

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 49
    Par défaut
    Merci, j'ai fais comme ça finalement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #!/bin/sh
     
    upload=path1/*_modified.f90
    pathbase=path2/src
     
    for mod_file in $upload
    do
        base_name=$(basename ${mod_file});
        base_part=${base_name%_modified*};
        target_file=$pathbase\/${base_part}.f90;
        if [ -f "$target_file" ]
        then
    	save_file=$pathbase\/${base_part}_old.f90;
    	cp ${target_file} ${save_file};
    	cp ${mod_file} ${target_file};
        fi
    done

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/10/2008, 01h17
  2. [RegEx] Pour remplacer des identifiants de fichiers incorporés par leur valeur
    Par Christophe Charron dans le forum Langage
    Réponses: 12
    Dernier message: 23/08/2007, 08h54
  3. Réponses: 11
    Dernier message: 02/08/2007, 09h04
  4. Réponses: 2
    Dernier message: 19/12/2006, 18h37
  5. Réponses: 2
    Dernier message: 10/02/2006, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo