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 :

lire Dernière ligne d'un fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut lire Dernière ligne d'un fichier
    bonjour.
    Je tourne en rond depuis ce matin, je cherche à lire la dernière ligne d'un fichier dont la taille et le nombre de ligne n'est pas connue.
    Il s'agit d'un fichier log de la commande wget, je cherche à savoir si la dernière ligne est "Abandon." ou non.
    Si c'est le cas je voudrais lire la ligne qui se trouve deux lignes avant, afin de savoir quel liens n'as pas pu etre téléchargé.
    Voici un exemple de fichier log (juste la fin) :
    ...
    ...
    --2011-05-12 04:01:25-- (essai:19) http://www646.megaupload.com/files/a9f630540c0f270a51cf5c062a3d4fe7/essayerais.txt
    Connexion vers www646.megaupload.com|174.140.129.51|:80...échec: Connexion terminée par expiration du délai d'attente.
    Nouvel essai.

    --2011-05-12 04:01:56-- (essai:20) http://www646.megaupload.com/files/a9f630540c0f270a51cf5c062a3d4fe7/essayerais.txt
    Connexion vers www646.megaupload.com|174.140.129.51|:80...échec: Connexion terminée par expiration du délai d'attente.
    Abandon.
    D'avance merci pour toute piste.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Regarde la commande tail, elle répond exactement à ton besoin.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

    Avec "ed" ?

    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
    $ cat plop
    ...
    ...
    --2011-05-12 04:01:25-- (essai:19) http://www646.megaupload.com/files/a9f630540c0f270a51cf5c062a3d4fe7/essayerais.txt
    Connexion vers www646.megaupload.com|174.140.129.51|:80...échec: Connexion terminée par expiration du délai d'attente.
    Nouvel essai.
    
    --2011-05-12 04:01:56-- (essai:20) http://www646.megaupload.com/files/a9f630540c0f270a51cf5c062a3d4fe7/essayerais.txt
    Connexion vers www646.megaupload.com|174.140.129.51|:80...échec: Connexion terminée par expiration du délai d'attente.
    Abandon.
    
    $ ed -s plop <<< $'$g/Abandon/-2p'
    --2011-05-12 04:01:56-- (essai:20) http://www646.megaupload.com/files/a9f630540c0f270a51cf5c062a3d4fe7/essayerais.txt
    
    $

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 467
    Par défaut
    De tête, et pas de linux pour tester...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat /chemin/du/fichier | tail -1

  5. #5
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    Bon j'ai compris avec l'utilisation de tail, deux ou trois lignes de code feront l'affaire, mais pour l'utilisation de "ed" qui semblerait tout faire en une ligne ... là je suis complétement largué
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  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
    Les explications :

    ed
    La commande


    -s
    Empêche l'affichage du nombre de caractères lus (fonction par défaut chez "ed")


    plop
    Le fichier à traiter


    <<<
    Redirection en entrée


    $'commandes'
    Syntaxe pour la redirection en entrée


    $g
    Lit la dernière ligne ($) et traite toutes les lignes (g)


    /Abandon/-2
    Motif moins 2
    Matche la 2ème ligne avant celle contenant le motif recherché.


    p
    Affichage du motif trouvé.


  7. #7
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    merci
    j'ai fait ceci avec tail, en faite il y a un retour à la ligne à la fin de mon fichier, Abandon est donc sur l'avant dernière ligne
    voici ce que ca donne (recherche Abandon, si présent, prend deux lignes avant, puis extrait le lien):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #!/bin/sh
    i="wget-log.531"
     
    fin=`cat $i | tail -2`
    if [ "$fin" = "Abandon." ]; then
      lien=`cat $i | tail -4 | grep -F "http://www"`
      result=`echo $lien | cut -c 36-`
      echo $result
    fi
    Tout fonctionne pour le mieux, mais si vous avez des suggestion d'optimisation, je suis preneur, a condition que je comprenne tout bien entendu
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/04/2009, 19h04
  2. Lire une les 3 dernières ligne d'1 fichier texte
    Par BECHE dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2009, 14h38
  3. lire les X dernières lignes d'un fichier.
    Par Empty_body dans le forum Langage
    Réponses: 6
    Dernier message: 13/06/2007, 11h58
  4. Comment lire la dernière ligne d'un fichier text.
    Par Ardely dans le forum Delphi
    Réponses: 29
    Dernier message: 20/01/2007, 23h29
  5. Réponses: 5
    Dernier message: 27/02/2006, 09h14

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