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

Shell et commandes GNU Discussion :

Importer dans un fichier log et extraire de ce fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 50
    Par défaut Importer dans un fichier log et extraire de ce fichier
    Bonjour,

    Je souhaiterai écrire à la suite dans un fichier de log $fic (non crée avant), la valeur de $var1 à chaque boucle, afficher le contenu de ce fichier et le supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while [     ]
    {
    $var1="..."
    -- Insérer la valeur de $var1 dans le fichier $fic
    }
    echo "Valeur des variables"
    echo $fic   -- afficher le contenu du fichier
    rm $fic1 -- supprimer le fichier
    Comment écrire dans un fichier non crée et à la suite ?
    Comment afficher le contenu textuel de ce fichier ?
    Et le supprimer une fois l'affichage effectué ?

    Merci

  2. #2
    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,

    echo "${var1}" >> ${fic} pour écrire/ajouter dans un fichier et cat ${fic} pour lire le fichier (et non echo ${fic} comme tu l'as écrit.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 50
    Par défaut
    Merci pour la rapidité .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "${var1}" >> ${fic}
    Cette forme écrit de quelle façon dans le fichier car je voudrais si possible un affichage dans le fichier comme ceci et afficher la dernière variable à la ligne:

    Valeur des variables
    100 200 100 100 (espace entre chaque variable)
    100 (dernière variable à la ligne

  4. #4
    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
    echo "${var1}" >> ${fic} écrit le contenu de la variable sur une ligne à chaque boucle (comme le suggère le bout de code que tu as donné).

    Pour l'affichage final que tu désires, c'est à toi de le programmer dans ta boucle selon tes désirs, ou de formater ton fichier final avant affichage...

  5. #5
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 50
    Par défaut
    D'accord .

    Si le fichier n'existe pas, il est crée automatiquement ?
    Faut-il que je spécifie dans une variable l'endroit ou je veux le créer ?
    Où il sera crée d'où est lancé le script ?

  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
    Citation Envoyé par Aiglon13 Voir le message
    Si le fichier n'existe pas, il est crée automatiquement ?
    Faut-il que je spécifie dans une variable l'endroit ou je veux le créer ?
    Où il sera crée d'où est lancé le script ?
    1 - Oui
    2 - Si c'est ce que tu veux, alors oui
    3 - Oui par défaut

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

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

    Il n'est pas nécessaire d'écrire dans le fichier lors de chaque boucle; on peut n'écrire qu'une fois "à la sortie" de la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while test condition = vrai
    do echo "$variable"
    done > fichier
    Il n'y a qu'un seul chevron.
    Si le fichier existe, il est écrasé, sinon il est créé.
    Toutes les données qu'afficherait la boucle sont redirigées vers le fichier.

    Si le fichier existe, et que tu ne souhaites pas l'écraser, utilise de la même façon les chevrons doubles.

  8. #8
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 50
    Par défaut
    Bonjour,
    Dans ce cas précis, je suis oligé de le faire au fur à mesure car c'est une boucle while dans une autre en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while{
    $varMain
        while [     ]
        {
        $var1="..."
        -- Insérer la valeur de $var1 dans le fichier $fic
        }
    -- Insérer la valeur de $varMain dans le fichier $fic
    }
        echo "Valeur des variables"
    echo $fic   -- afficher le contenu du fichier
    rm $fic1 -- supprimer le fichier
    Du coup j'aurai un affichage du type:
    varMain
    var1 var1 var1 var1
    var Main
    var1 var1 var1 var1

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 738
    Par défaut
    pas du tout.
    redirige ce qu'afficherait la boucle principale (je trouve bizarre d'avoir des boucles imbriquées, soit dit en passant, mais bon), c'est à dire ce qu'elle afficherait en propre, et ce qu'afficherait la boucle interne, vers le fichier.

  10. #10
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 50
    Par défaut
    Ok, autant pour moi.
    De ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while
    do
    $varMain
        while [     ]
        do
        $var1="..."
        echo $var1-- Insérer la valeur de $var1 dans le fichier $fic
        done > fichier
    echo $varMain-- Insérer la valeur de $varMain dans le fichier $fic
    done > fichier
    Merci

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 738
    Par défaut
    la redirection de la boucle interne n'est pas nécessaire.

Discussions similaires

  1. import d'un fichier log dans Neo4j à travers Java
    Par houba91 dans le forum NoSQL
    Réponses: 2
    Dernier message: 26/03/2014, 14h51
  2. [WD15] Demande : Import fichier log automatique dans windev
    Par liners dans le forum WinDev
    Réponses: 6
    Dernier message: 27/02/2014, 20h42
  3. Réponses: 1
    Dernier message: 11/11/2010, 16h41
  4. [XML] importer un fichier .log ou .xml dans une base de donnée MySQL
    Par sorayati dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/08/2009, 17h16
  5. Réponses: 5
    Dernier message: 02/05/2009, 20h10

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