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 :

Shell et suppression de ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut Shell et suppression de ligne
    bonjour

    Je ne trouve pas de tuto sur le shell . Avec un script sh , 3 lignes sont écrites dans un fichier .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /home/pi/rspi/adafruit/Adafruit_DHT 11 4 >> /home/pi/rspi/adafruit/ht24_12.csv
    exit 0
    Adafruit fournit >>> t=xx °C et ht=yy % sur la troisième ligne

    1. Dans un premier temps , je veux ne garder que la troisième ligne
    2. Dans un deuxième , reformater cette ligne avec 'date +%x:%X' +'xx'+'yy'

    Pouvez vous donner conseils ?

    @+

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Par défaut
    tail (éventuellement avec head si la sortie peut évoluer) ainsi que awk devraient t'aider.

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

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

    sed va faire ça; ce n'est pas très compliqué.
    voir :
    sed tutorials
    sed - an Introduction

    Dans un premier temps , je veux ne garder que la troisième ligne
    alors comment comptes-tu récupérer xx ?
    il faut falloir améliorer/approfondir ton algorithme.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    ok , c'est un début ..

    sed "1,10d" fichier : sortie du fichier à partir de la onzième ligne
    sed "/^From/!d" fichier : On n'efface tout sauf les lignes commençant par From , donc on imprime les lignes commençant par From.
    Dans mon cas , chaque exécution de Adafruit_DHT 11 4
    sort 3 lignes qui partent dans un fichier .
    Adafruit_DHT 11 4 >> /home/pi/rspi/adafruit/ht24_12.csv

    Je veux formater avant écriture dans le fichier pour placer
    ensuite un cron horaire .

    Using pin #4
    Data (40): 0x22 0x0 0x18 0x0 0x3a
    Temp = 24 *C, Hum = 34 %
    Dans le fichier , je ne veux que 3 champs ( date ; xx ; yy ) en csv
    exportable via sql ( 24 lignes horaires ) .

    Je peux aussi laisser tel quel et formater les 24x3 ( 72 lignes )
    après les 24 cron .

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,

    Pour ma part, je n'ai rien compris de ton problème.
    c'est quoi dans ton input le date, le xx, le yy ?

    A priori, tu nous as donné l'input à filtrer, pourrais-tu nous donner l'output final de cet input que l'on comprenne mieux ?

    Après, on pourra peut-être t'aider...

  6. #6
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Je peux aussi laisser tel quel et formater les 24x3 ( 72 lignes )
    après les 24 cron .

    C'est très facile avec python :

    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
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
     
    import time
    import os
    import sys
     
    os.system('clear')
    ofi = open('dh25_12.csv')
    t = ofi.read()
    # ------------------------------------------
    i=90*0
    j=i+72
    k=j+13
    print(t[i:i+17]+';'+t[j:j+2]+';'+t[k:k+2])
    # ------------------------------------------
    i=90*1
    ...
    Ce qui donne :

    25/12/14 -- 19:00;23;51
    25/12/14 -- 19:30;23;49
    25/12/14 -- 20:00;23;48
    ...

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

Discussions similaires

  1. suppression des lignes d'un fichier en shell
    Par lamou23 dans le forum Linux
    Réponses: 4
    Dernier message: 07/06/2010, 22h51
  2. Dbgrid : Comment interdire Suppression de Ligne
    Par Francis dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2004, 08h31
  3. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26
  4. Réponses: 4
    Dernier message: 02/07/2004, 19h14
  5. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19

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