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

Linux Discussion :

erreur programme shell


Sujet :

Linux

  1. #1
    Membre actif
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Par défaut erreur programme shell
    bonsoir, j'ai tapé un programme shell dont le but est de détécter la duplication d'un fichier, mais ça cloche lorsque j'exécute
    voici mon 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
    #! /bin/sh
    echo "entrez le repertoire"
    read rep
    find $rep -type f >fic1
    wc -l ./fic1 >fic2
    n=`cut -d" " -f1 fic2`
    rm fic2
    for i in `seq $n` 
      do 
         chemin=`sed -n ''$i'p' fic1` 
         name=`basename $chemin `
         for j in `$i ... $n`
              do 
              chemin1=`sed -n ''$j'p' fic1`
              name1=`basename`$chemin1`
              if ("$name" = "$name1") 
                then  echo "2 fichiers identiques"
              fi
              done
      done
    ou aussi celui là :

    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
    #! /bin/sh
    echo "entrez le repertoire"
    read rep
    find $rep -type f >fic1
    wc -l ./fic1 >fic2
    n=`cut -d" " -f1 fic2`
    rm fic2
    for i in `seq $n`
    do 
    chemin=`sed -n ''$i'p' fic1` 
    name=`basename $chemin `
    for j in `$i ... $n`
    do 
    if (sed -n ''$j'p' fic1 | grep $name )
    then echo "2 fichiers identiques" 
    else echo " rien"
    fi 
    done 
    done
    si vous pouvez me montrer où est l'erreur je serais très remerciant

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    C'est beaucoup plus simple que cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find ./ -type f  -exec basename {} \;  | sort |uniq -d

  3. #3
    Membre actif
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Par défaut
    Merci beaucoup, ça m'a beaucoup aidé

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 713
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 713
    Par défaut
    Bonjour,

    pourquoi basename ?

    find "$rep/" -type f -printf '%f\n' | [...]

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    pourquoi basename ?

    find "$rep/" -type f -printf '%f\n' | [...]
    Par habitude

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Citation Envoyé par N_BaH Voir le message
    Bonjour,
    pourquoi basename ?
    find "$rep/" -type f -printf '%f\n' | [...]
    Extrait de Bash Hackers Wiki :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %f 	Interpret and print the associated argument as floating point number
    Quelqu'un aurait l'amabilité de m'expliquer le comment du pourquoi de la chose* ???

    Merchi


    * La chose étant bien entendu la transformation d'un point décimal en barre oblique

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 713
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 713
    Par défaut
    Bonjour,

    Il ne s'agit, ici, ni de la commande printf interne de bash, ni de /usr/bin/printf, mais d'une option action propre à find

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    Il ne s'agit, ici, ni de la commande printf interne de bash, ni de /usr/bin/printf, mais d'une option action propre à find
    Mais quelle buse je fais moi

    En tout cas merci beaucoup

Discussions similaires

  1. Erreur Programmes!!! (ebesoin d'aide)
    Par charfamine dans le forum MFC
    Réponses: 6
    Dernier message: 08/04/2006, 14h16
  2. Programmation Shell avec Red Hat Calcul de moyenne
    Par jcpoulard dans le forum Linux
    Réponses: 3
    Dernier message: 22/02/2006, 23h08
  3. Pourquoi la programmation Shell ?
    Par am.adnane dans le forum Linux
    Réponses: 14
    Dernier message: 21/01/2006, 01h47
  4. [MySQL] Erreur programme
    Par Didier100 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/01/2006, 23h12
  5. Programmation Shell
    Par Leila75 dans le forum Linux
    Réponses: 3
    Dernier message: 12/05/2005, 10h45

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