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

Solaris Discussion :

copier une partie de fichier vers un autre


Sujet :

Solaris

  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Par défaut copier une partie de fichier vers un autre
    Salut,

    J'ai un fichier de format der que je converti avec openssl en format pem pour que je puisse le lire avec un éditeur de texte.

    Le fichier après conversion se compose comme suit:

    -----BEGIN CERTIFICATE-----
    MIIFrjCCBJagAwIBAgIDASa3MA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkxV
    MRYwFAYDVQQKEw1MdXhUcnVzdCBTLkEuMR4wHAYDVQQDExVMdXhUcnVzdCBRdWFs
    aWZpZWQgQ0EwHhcNMDkwOTI0MDczMDQ2WhcNMTIwOTI0MDczMDQ2WjCBsjELMAkG
    A1UEBhMCTFUxEzARBgNVBAgTCkxVWEVNQk9VUkcxEzARBgNVBAcTCkxVWEVNQk9V
    UkcxFjAUBgNVBAoTDVBULUNPTlNVTFRJTkcxDjAMBgNVBAsTBUVDSVRZMRYwFAYD
    VQQDEw1SQVBJTiBMYXVyZW50MRIwEAYDVQQFEwk5OTk5MDE2NDcxJTAjBgkqhkiG
    9w0BCQEWFmVjaXR5QHB0LWNvbnN1bHRpbmcubHUwggEiMA0GCSqGSIb3DQEBAQUA
    A4IBDwAwggEKAoIBAQCohc4AEv7uC8.....
    -----END CERTIFICATE-----

    Je veux faire un script qui permet de récupérer ce qu'il y a entre -----BEGIN CERTIFICATE----- et -----END CERTIFICATE----- et le stocke dans un autre fichier.
    Voici mon script:
    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
    34
    35
    36
    37
    38
    39
    40
     
    #!/bin/ksh
    echo "entrer le nom du der a convertir en pem \n";
    read der_file;
    #convertir le der en pem et stocker dans le fichier test_der.der
    `openssl x509 -inform der -in $der_file -outform pem -out "test_der.der"`;
    #recupere le "Base name" dans le format RFC2253 et stocke dans $tmp
    tmp=`openssl x509 -in "test_der.der" -noout -subject -nameopt RFC2253`;
    echo "tmp= $tmp";
    echo $tmp|while read lg
            do
            #recuperer l'identifiant sofie du certificat    
            id=`echo $lg|cut -d"=" -f 4|cut -d"," -f 1`;
                    echo "id= $id";
                    #mv "test_der.der test_der.`$id `.pem";
            done
    #rm -f "test_der.der";
    #construire le ldif
    debut="-----BEGIN CERTIFICATE-----";
    #echo "debut du certificat :$debut";
    fin="-----END CERTIFICATE-----";
    #echo "fin du certificat :$fin";
    cat "test_der.der"|while read ln
            do
     
                    if [ [$ln == $debut] ]
                    then
                            echo $debut
                    else
                            if [ $ln == $fin ]
                            then
                                    echo $fin
                            else
                                    echo $ln >> "certificat.txt";
                            fi
                    fi
            done
     
     
    exit 0;
    Lorsque je l'execute j'ai l'erreur suivante:

    ./convertToPem.ksh[27]: [: CERTIFICATE-----: unknown operator
    ./convertToPem.ksh[31]: [: CERTIFICATE-----: unknown operator

    Quelqu'un peut-il me dire ce que je fais de faux ?

    Merci

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Il est possible de corriger ton script mais bien plus simple d'utiliser sed qui est mieux adapté.

    Remplacer le "cat test_der.der | while read ..." par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' test_der.der > certificat.txt

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Par défaut
    Salut,

    Cela ne marche pas, le fichier contient toujours le --BEGIN ....


  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Normalement, le BEGIN et END CERTIFICATE fait partie du certificat. Quel soft utilises-tu qui a un problème avec ces deux lignes ?

    Sinon, il suffit de les enlever comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' test_der.der | grep -v CERTIFICATE > certificat.txt

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Par défaut
    J'ai trouvé la solution,

    J'ai mis 2 sed sans le -n comme suit:

    sed '/-----BEGIN CERTIFICATE-----/d' "test_der.${id}.pem" >certificat.txt;
    sed '/-----END CERTIFICATE-----/d' "certificat.txt" > ldif_add_${id}.ldif;

    Merci pour ton aide.

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Hmm, tu veux dire qu'il n'y avait rien d'autre dans ton fichier avant BEGIN CERTIFICATE et après END CERTIFICATE ?? Si oui, une réponse encore plus simple est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grep -v CERTIFICATE test_der.der > certificat.txt

  7. #7
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Par défaut
    Beh non il n'y a rien avant et rien après.

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

Discussions similaires

  1. Copier coller d'un fichier vers un autre
    Par loloz27 dans le forum Excel
    Réponses: 2
    Dernier message: 02/02/2009, 17h40
  2. Parser une Partie du Fichier avec un autre Schema
    Par cimdziri dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 23/04/2008, 17h59
  3. Réponses: 1
    Dernier message: 20/03/2007, 12h39
  4. copier une partie d´un fichier dans un autre
    Par makohsarah dans le forum Langage
    Réponses: 8
    Dernier message: 23/08/2006, 09h53
  5. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39

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