RobertRyan a écrit 8 commentaires

  • [^] # Re: Problème résolu

    Posté par  . En réponse au message La récupération de mes emails Hotmail dans Gmail ne fonctionne plus. Évalué à 0.

    Je suis bien content pour toi, cependant je ne vois pas le rapport avec le sujet actuel.
    Postez quelque chose en rapport s'il vous plaît.
  • # Problème résolu

    Posté par  . En réponse au message La récupération de mes emails Hotmail dans Gmail ne fonctionne plus. Évalué à 0.

    J'ai moi-même trouvé la solution à mon problème. Mon mot de passe Hotmail était trop long (20 caractères). Ce n'était pas gênant pour ouvrir ma boîte Hotmail, par contre le mot de passe était refusé lors de la récupération à partir de Gmail.
    Je l'ai changé pour un de 16 caractères et tout est rentré dans l'ordre.
  • [^] # Re: 2 technos propriétaires qui se font la guerre

    Posté par  . En réponse au message La récupération de mes emails Hotmail dans Gmail ne fonctionne plus. Évalué à 2.

    Hors sujet. Ce n'est pas une question de technologie propriétaire, puisque les 2 utilisent un protocole standard, le POP.
  • # Problème résolu!

    Posté par  . En réponse au message Annonce : besoin de cours en C++ sur Marseille. Évalué à 1.

    Je vous remercie, j'ai désormais résolu mon souci.
  • [^] # Re: hum

    Posté par  . En réponse au message Annonce : besoin de cours en C++ sur Marseille. Évalué à 1.

    Kolter, ton avis est interessant mais mon annonce tiens toujours.
  • [^] # Script achevé

    Posté par  . En réponse au message utilisation de S_ISDIR et S_ISREG. Évalué à 1.

    Ayé! Enfin!
    
    Je vous remercie tous pour vos contributions. En particulier la tienne, netsurfeur.
    Je suis épaté par la rapidité de vos réactions et la qualité de vos réponses. Si si!
    Donc j'ai terminé mon script et je le poste ici, sait-on jamais, ça pourrait servir à d'autres.
    
    Je rappelle à quoi il sert :
    Les employés d'une entreprise d'audit créés, chaque fois qu'une entreprise est auditée,
    un fichier contenant leur rapport sous /home/[le rep de l'auditeur]
    (ex : Jacques dépose ses rapports dans /home/Jacques).
    Le rapport est de la forme [nom de l'entreprise].extension (ex : Renault.doc).
    Le programme déplace les rapports des auditeurs et les place sous /Rapports/[nom de l'entreprise]
    (ex : le rapport renault.doc de Jacques sera placé sous /Rapports/Renault).
    Eventuellement, si l'entreprise est auditée pour la première fois
    (et qu'il n'y a donc pas encore de répertoire à son nom sous /Rapports),
    le programme créé un répertoire au nom de l'entreprise.
    Le premier rapport déposé prendra alors le nom, par exemple, Sony.001.doc.
    Si l'entreprise a été auditée plusieurs fois, le programme renomme le rapports en le déplaçant.
    Ainsi, le 2nd rapport sur Renault s'appellera Renault.002.doc, le 3ième, Renault.003.doc, etc...
    N'hésitez pas à me demandez des précisions si je n'ai pas été assez clair.
    
    ________________________________________________________________________________
    
    #! /bin/bash
    
    # Le programme suivant prend en compte un nombre illimité d'auditeurs et jusqu'à 999 rapports.
    # Les rapports sont traités quelque soit leur extension.
    # Le nom des rapports peut contenir n'importe quel signe y compris des espaces.
    # Le nom des rapports classés est de la forme 'société.001.ext'.
    # Le fait d'ajouter un point entre le nom de la société et le numéro permet de prendre
    # en compte la présence éventuelle de chiffres dans le nom de la société.
    
    # Variables :
    # a = répertoires des auditeurs sous /home
    # b = rapports non classés
    # c = nom de la société auditée
    # d = numéro du dernier rapport classé
    # e = extension du rapport
    
    cd "/home/Linux/Profils/"
    
    for a in * ; do
       # traiter uniquement les répertoires
       if [ -d "$a" ] ; then
          cd "/home/Linux/Profils/$a"
      
             for b in * ; do
                # traiter uniquement les fichiers
                if [ -f "$b" ] ; then
                   # on extrait du nom du rapport le nom de la société
                   # c'est à dire tout ce qui est avant le dernier point
                   c=${b%*.*}
                   # on récupère l'extension du rapport à classer
                   # c'est à dire tout ce qui est après le dernier point
                   e=.${b##*.}
                   # un répertoire au nom de la société existe-t-il déjà?
    	       cd "/home/Linux/Rapports"
                      if [ -d "$c" ] ; then
                         cd "$c"
                         # on extrait de la liste le dernier fichier ajouté
                         # (celui dont le nombre est le plus grand)
                         d=$(ls -1 | tail -1)
                         # on retire au fichier son extension
                         d=${d%*.*}
                         # on extrait son numéro
                         d=${d##*.}
                         # on supprime les zéros non significatifs
                         d=$(echo $d | sed 's/^0*//')
                         # on incrémente ce numéro de 1
                         d=$(($d + 1))
                         # on lui accolle 2 '0'
                         d=00$d
                         # on extrait les 3 premiers chiffres (à partir de la droite)
                         # \([0-9][0-9][0-9]\) et \1 : motif conservant les 3 chiffres de droite
                         d=$(echo $d | sed 's/^0*\([0-9][0-9][0-9]\)/\1/g')
                         # on déplace enfin le rapport du répertoire de l'auditeur
                         # dans le répertoire de la société en le renommant
                         mv "/home/Linux/Profils/$a/$b" "/home/Linux/Rapports/$c/$c"."$d$e"
                      else
                         # on crée un répertoire au nom de la société
                         mkdir "/home/Linux/Rapports/$c"
                         # on y déplace alors le rapport en lui attribuant le numéro '001'
                         mv "/home/Linux/Profils/$a/$b" "/home/Linux/Rapports/$c/$c".001"$e"
                      fi
    
                fi
                   
    	    # le prog se trouvait alors dans /home/Linux/Rapports,
                # il faut qu'il revienne dans le répertoire de l'auditeur
                # pour traiter les rapports restant
                cd "/home/Linux/Profils/$a"
    	      
    	 done
    
       fi
    
       # le prog se trouvait alors dans le répertoire d'un auditeur,
       # il faut qu'il revienne sous /home pour traiter les répertoires
       # des autres auditeurs
       cd "/home/Linux/Profils/"
    
    done
  • [^] # Re: Ben, man bash ...

    Posté par  . En réponse au message utilisation de S_ISDIR et S_ISREG. Évalué à 2.

    > Robin des Bulles

    En fait, dans mon script précédent, j'avais fait ceci :

    cd /home

    for a in * ; do
    # ignorer tous les objets qui ne sont pas des répertoires
    if [ ! -d "$a" ] ; then
    continue
    fi

    if [ "$a" = \* ] ; then
    break
    fi

    cd "/home/$a"

    for b in * ; do
    # ignorer tous les objets qui ne sont pas des fichiers
    if [ ! -e "$b" ] ; then
    continue
    fi

    if [ "$b" = \* ] ; then
    continue
    fi

    mais les tests sur les fichiers et les repertoires faisaient que le programme ne fonctionnaient pas bien. Je les ai donc supprimés.
    Sinon, ta solution est peut-être juste, mais je ne la comprends pas bien. Et en quoi est-elle différente de la mienne?
  • [^] # Re: Le dernier fichier....

    Posté par  . En réponse au message Tri de fichiers et expressions rationnelles. Évalué à 1.

    Merci bien pour ta réponse !
    Déjà la moitié de mon problème résolu. ça avance!