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 :

Aide sur un script


Sujet :

Linux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Aide sur un script
    Hello,
    Suis nouveau, premier message sur ce forum qui a l'air super complet : bravo !!

    voici ma question : sur le script suivant tout marche bien jusqu'au moment ou on arrive à l'instruction :
    sed -e "s/^0500:007C00:0000000000:80:.*/$new/I" /var/keys/camd3.keys > /var/keys/keys.new

    L'instruction à l'air de se faire mais après quand je veux lire le fichier keys.new c'est impossible. même pas possible de faire un FTP pour le rapatrier sur une autre machine. Or il est bien là avec la bonne taille

    Autre problème : l'instruction while (boucle permanante) ne se fait pas: içi, j'ai enlevé le # pour mon message mais autrement je n'entre pas dans la boucle.

    Quelqu'un peut-il me dire ce que je dois faire ?

    Merci

    JL
    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
    #!/bin/sh
     while [ 1 ]; do
     
     CAMD3KEYFILE=/var/keys/camd3.keys
     UPDURL=http://upload.unisatellite.free.fr/aes/linuxkeys.php
    nkey=`wget -q -O - $UPDURL | grep -i "0500:007C00:0000000000:00:" | sed -e "s/0500:007C00:0000000000:00:/""/g" | sed -e "1,3s/://"`
     echo $nkey
     new=`echo 0500:007C00:0000000000:80:"$nkey"`
     echo $new
     current=`grep -i "^0500:007C00:0000000000:80:" /var/keys/camd3.keys`
     echo $current
     echo "remplace"
     sed -e "s/^0500:007C00:0000000000:80:.*/$new/I" /var/keys/camd3.keys > /var/keys/keys.new
     cp /var/keys/keys.new /var/keys/camd3.keys
     $PCAMD -loadkeys /var/keys/camd3.keys
     echo ~YCAMD3:~t ~S"$new" >> /tmp/msgbox.txt
     done

  2. #2
    Membre averti Avatar de temar
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 316
    Points : 300
    Points
    300
    Par défaut
    Salut,

    Pour le problème avec le sed, je peux pas t'aider, j'y connais pas grand chose en shell.

    Par contre, pour ta boucle, avec :

    ça marche pas mieux ?

    A+

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Citation Envoyé par odrimont
    Hello,
    Suis nouveau, premier message sur ce forum qui a l'air super complet : bravo !!

    voici ma question : sur le script suivant tout marche bien jusqu'au moment ou on arrive à l'instruction :
    sed -e "s/^0500:007C00:0000000000:80:.*/$new/I" /var/keys/camd3.keys > /var/keys/keys.new
    C'est quoi cette option I dans s/..../.../I ?

    Qu'est-elle sensée faire ?

    Si je ne me trompe, les options de substitution sont soit un entier soit g.
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    J'ai jeté un oeil sur le lien que tu as donné dans ton script et je pense que tu te compliques un peu la vie. Essaye ceci par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # capture de la key distante
    UPDURL=http://upload.unisatellite.free.fr/aes/linuxkeys.php
    nkey=$(wget -q -O - $UPDURL | cut -d : -f 5)
    sed -r "s/^(0500:007C00:0000000000:80:).*/\1$nkey/g" keys > keys_new
     
    # sauvegarde de l'ancienne version de keys
    mv keys keys_old
     
    # copie des nouvelles keys
    mv keys_new keys
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    je suppose que le "i" c'est pour insensible à la casse et g pour ocurence dans toute la chaine de caractere. Tu peux lire la FAQ perl (partie regex), confere lien dans ma signature.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Effectivement, après test I ou i, c'est du pareil au même.
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre aide. Je teste et je vous tiens informé ou je pose d'autre question...

    JL

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ripat,

    J'essaie de m'y retrouver dans les options de SED. Peux tu me dire ce que fait l'option -r

    Encore merci pout on aide

    JL

  9. #9
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut
    Citation Envoyé par odrimont
    Ripat,

    J'essaie de m'y retrouver dans les options de SED. Peux tu me dire ce que fait l'option -r

    Encore merci pout on aide

    JL
    L'option -r permet l'utilisation des expressions regulieres. Et donc d'avoir acces a d'avantages de symboles pour le traitement des chaines.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     -r, --regexp-extended
     
                  use extended regular expressions in the script.
    Don't worry, be serious.
    La vie est courte. Prenez votre temps.

    Jack.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Encore une question : à quoi sert le \1 dans la ligne conseillée par ripat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -r "s/^(0500:007C00:0000000000:80:).*/\1$nkey/g" keys > keys_new

  11. #11
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut
    Citation Envoyé par odrimont
    Encore une question : à quoi sert le \1 dans la ligne conseillée par ripat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -r "s/^(0500:007C00:0000000000:80:).*/\1$nkey/g" keys > keys_new
    L'expression entre parentheses dans la regexp est memorisee, et peut etre rappelee par la suite grace a \1.

    Cette notation est utilisee quand on veut transformer des lignes en conservant les donnee.

    Exemple:

    Si on a ca dans un fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    data:serious_datas;
    data:funky_datas;
    data:useless_datas;
    Et qu'on veut garder les donnes en virant le reste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $ cat data
    data:serious_data;
    data:funky_data;
    data:useless_data;
     
    $ cat data | sed -r 's/data:(.*);/\1/g'
    serious_data
    funky_data
    useless_data
    Ici on peut conserver un motif quel qu'il soit.

    Et si tu as un motif de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    blabla (.*) blibli (.*) bloblo (.*)
    Tu peut recuperer les differents champs grace a \1, \2, \3, etc.
    Don't worry, be serious.
    La vie est courte. Prenez votre temps.

    Jack.

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    merci jack, j'ai compris. c'est super complet comme réponse.

    Encore une chose : je reste avec mon problème de fichier que je ne sais pas relire : keys_new dans la ligne sed.
    En regardant via une application de gestion de fichier (tuxbox), je constate que le fichier céé est terminé par un caractère spécial. Si je l'enlève manuellement alors là je sais lire et manipuler le fichier.

    Question : comment dans le script faire en sorte que ce caractère bizarre se rajoute à la fin du nom du fichier ?

    A+

    JL

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    C'est curieux ce problème de caractère fantôme.

    Edite ton script dans vim en console et affiche les caractères spéciaux avec
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    ok j'ai compris. tout marche.

    Mon erreur était d'utiliser le notepad de windows pour écrire le script.
    j'ai pris un éditeur qui suporte le format unix et c'est en ordre.

    Encore merci à tous

Discussions similaires

  1. Aide sur correction script affichage
    Par fmd92 dans le forum Langage
    Réponses: 5
    Dernier message: 17/10/2007, 19h53
  2. Demande d'aide sur un script de mise en forme..
    Par threepwood dans le forum Linux
    Réponses: 4
    Dernier message: 24/08/2007, 14h37
  3. demande d'aide sur un script
    Par threepwood dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 24/05/2007, 11h45
  4. Besoin d'aide sur un script SQL de recherche
    Par agougeon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/10/2005, 11h40

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