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
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    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 exp�riment� Avatar de temar
    Profil pro
    �tudiant
    Inscrit en
    Ao�t 2004
    Messages
    316
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 316
    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 Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    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.

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    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

  5. #5
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    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 Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par d�faut
    Effectivement, apr�s test I ou i, c'est du pareil au m�me.

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

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

    JL

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    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 chevronn� Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    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.

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    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 chevronn� Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    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.

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    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 Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    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