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 :

Afficher 4 caractères se trouvant avant le caractère V dans la 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 actif
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Par défaut Afficher 4 caractères se trouvant avant le caractère V dans la dernière ligne d'un fichier
    bonjour et merci d'avance

    voila la dernière ligne

    18-07-15 17:33 12.47V 454mA

    j'aimerai obtenir 12.47

    et accessoirement 454

    bien sur il doit toujours chercher la dernière ligne car le fichier a 1 ligne de plus chaque minute

    super grand merci

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Cordialement.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Avec les commandes indiquées par supersnail si avoir le V et le mA ne te dérange pas sinon un sed marcherais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "18-07-15 17:33 12.47V 454mA" | sed "s/.* \(.*\)V \(.*\)mA/\1 \2/"
    12.47 454
    A toi de trouver la commande tail à mettre à la place du echo et à adapter le sed pour avoir ce que tu souhaites

  4. #4
    Membre actif
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Par défaut merci
    merci pour ces indices, j'adore

    a plus avec la commande..

  5. #5
    Membre actif
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Par défaut première solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat Fichier  | tail -1 | sed "s/.* \(.*\)V \(.*\)mA/\1 \2/"
    serait il possible de m'expliquer un peu plus en détail sed "s/.* \(.*\)V \(.*\)mA/\1 \2/"merci

  6. #6
    Membre actif
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Par défaut suite
    Je vais chercher les autres possibilié plus tard

    maintenant il me reste a créer une boucle qui attends que la valeur de V soit <=12

    la j'ai encore de la peine

    merci encore

  7. #7
    Invité
    Invité(e)
    Par défaut
    C'était presque ça, il n'y a pas besoin du cat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tail -1 Fichier | sed "s/.* \(.*\)V \(.*\)mA/\1 \2/"
    sed utilise les expressions régulières ce qui est très pratique. Je te conseille de regarder une documentation dessus pour en savoir plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed "s/xxx/yyy/" fichier
    sed remplacera la première occurence de xxx par yyy du fichier et affichera le résultat à l'écran

    \1 = 1er texte situé entre la 1ère série de \( et \)
    \2 = 2ème texte situé entre la 2ème série de \( et \)
    etc ...

    .* = tout texte qui sera le plus long possible tant que l'expression régulière est bien complète
    Le 1er .* ira donc jusqu'au dernier espace avant le V
    \(.*\)V correspondra donc au 12.47V
    (.*\)mA correspondra donc au 454mA

  8. #8
    Membre actif
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Par défaut maintenant il me reste a faire une boucle pour attends que le V soit = ou inférieur a 12
    Déjà merci pour votre aide

    comme dit juste au dessus j'ai besoin de faire une boucle pouvez vous me donner quelque piste mais un peu plus détaillé que simplement while

    A plus

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

Discussions similaires

  1. Ajouter une chaine de caractère dans toutes les lignes d'un fichier
    Par kromei dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 19/03/2013, 13h34
  2. [PowerShell] Comment afficher la dernière ligne d'un fichier CSV ?
    Par johnvlesk dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 09/11/2010, 21h47
  3. [PHP 5.0] Comment extraire du texte se trouvant AVANT un caractère
    Par pierrot10 dans le forum Langage
    Réponses: 3
    Dernier message: 05/01/2009, 14h34
  4. Réponses: 6
    Dernier message: 22/09/2008, 14h52
  5. Afficher le debut d'une chaine de caractère
    Par spoun95 dans le forum Réseau
    Réponses: 5
    Dernier message: 22/02/2004, 16h48

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