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 :

[Script] Ignorer une ligne spécifique


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par défaut [Script] Ignorer une ligne spécifique
    Bonjour,

    Je reviens vers vous.

    Je souhaite connaitre le nombre de table SQL ayant une taille supérieur à 4000 (MB).
    Sur la totalité de ces table, je souhaite ignorer celle nommé "event_data" sachant que les autres se nomme "event_dataXXXX"

    J'utilise le "script" ci-dessous pour compter le nombre de table ayant une taille superieur à 4000 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd=$(mysql -uuser -ppwd BDD -e ' select table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) "Taille en MB" from information_schema.TABLES where table_schema = "BDD" AND table_name like "%event_data%" ' | cut -f2 -d"|" | cut -f2 | awk 'BEGIN {n=0 } { if ($1 >= 4000) n++ } END { print n }') 
    echo $cmd
    Mes deux problèmes sont :

    1) Le nombre de table ayant une taille > à 4000 est 1 seule, alors que la commande me retourne 2 ??

    2) Je souhaite ignorer la table (ligne) "event_data" mais je ne sais pas du tout comment faire malgré mes recherches.

    Si vous auriez une idée.

    Merci,

    Malik.

    Voici la commande permettant de voir les tailles des bases qui m'interresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -uuser -ppwd BDD -e ' select table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) "Taille en MB" from information_schema.TABLES where table_schema = "BDD" AND table_name like "%event_data%" ' | less
    Ici, le résultat de cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Tables  Taille en MB
    event_data      663766.15
    event_data10000 727.45
    event_data10001 681.22
    event_data10002 688.73
    event_data10003 628.62
    event_data10004 705.44
    event_data10005 747.45
    event_data10006 717.04
    event_data10007 681.40
    event_data10008 750.94
    event_data10009 735.66
    Je souhaite donc ignorer la première ligne "event_data 663766.15"

  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,

    Enlèves les "cut" de ta commande et essayes ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk 'BEGIN { n=0 } /^event_data\B/ { if ($2 >= 4000) n++ } END { print "Total : " n }'

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 247
    Billets dans le blog
    1
    Par défaut
    ou alors
    rajoute la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    and table_name <>"event_data"
    D'ailleurs tu peux aussi retirer le premier % dans le like si le nom doit commencer par event_data.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par défaut
    Bonjour,

    Avec le "awk", c'est parfait.
    En effet, le % devant le LIKE n'est pas necessaire.

    Merci beaucoup de votre aide. En esperant pouvoir me débrouiller tout seul maintenant

    Merci,

    Malik.

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

Discussions similaires

  1. Ecriture dans une ligne spécifique d'un fichier texte
    Par X-plode dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 15/07/2007, 08h46
  2. JTable et suppression d'une ligne spécifique
    Par Gxouxou dans le forum Composants
    Réponses: 3
    Dernier message: 12/05/2007, 17h05
  3. Réponses: 2
    Dernier message: 31/03/2007, 19h54
  4. Réponses: 13
    Dernier message: 26/06/2006, 12h10
  5. Scripts : Extraire une ligne
    Par nemohck dans le forum Linux
    Réponses: 7
    Dernier message: 03/11/2003, 20h40

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