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 :

recuperer valeur "wc -l" et l'utiliser pour faire un calcul


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Février 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2010
    Messages : 58
    Par défaut recuperer valeur "wc -l" et l'utiliser pour faire un calcul
    Bonjour,
    Je sollicite votre aide dans un script shell que je suis en train de faire...

    Déjà voici le script

    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
    20
    #!/bin/bash
     
    #nombre de ligne de la BD 
    cat  $1 | wc -l > nbligne 
     
    #ne prend que le parametre d'entrée numéro 1
    cut -d " " -f 1 bdfinale.smi > bdcutfinale.smi 
     
    #nb de O
    i=1
     
    if [ "$i" -le 4 ]
    then
    	awk -F '[Oo]' "NF-1 == $i"  bdcutfinale.smi  > bdO$i
            cat  bdO$i | wc -l > nbligneO$i
     
            let 'nbO=nbligneO"$i" - nbligne'
            echo 'le nombre de molecule avec' "$i" 'O est de : ' $nbO
            let 'i="$i"+1'
    fi
    Que fait le script alors il doit compter le nombre de ligne d'un fichier $1 et stocker cette valeur
    Puis ensuite j'ai un fichier *.smi avec plusieurs colonnes, je ne prends que la 1ere.
    Ensuite je fais une boucle allant de i a 4 me permettant de calculer le nombre de ligne avec 1 O.
    Pourquoi 4 ? Car je sais que je n'ai pas plus de 4 O par ligne.

    Il compte le nombre de ligne et retire ces lignes du fichier.
    je compte le nombre de ligne du fichier restant et je le soustrait au nombres de lignes totaux.
    J'ai ainsi le nombre de ligne avec seulement 1 fois le caractère O.

    Ensuite je passe à i+1 et je répète avec le nombre de 0 égale à 2...
    Et ainsi de suite...


    En gros mon probléme se situe à cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let 'nbO=nbligneO"$i" - nbligne'
    en effet j'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bash -x :/testscript blabla.smi
    afin de débugger le code et c'est à cette ligne que le programme bloque avec cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    line 17: let: nbO=nbligneO$i - nbligne: syntax error in expression (error token is "$i - nbligne")
    Je viens demander votre aide

    De plus ma ligne est-elle juste ?
    Merci
    Cédric

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    De plus ma ligne
    Code :
    let 'i="$i"+1'
    est-elle juste ?
    non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    i=3
    let "i=$i+1"
    echo "$1"
    4
    tu peux essayer l'Evaluation Arithmétique de bash
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Février 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2010
    Messages : 58
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    tu peux essayer l'Evaluation Arithmétique de bash
    ...
    ?
    Cette expression gere les $
    et les " ' etc....
    [je suis dans le bus du retour]
    je teste ce soir
    Merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Février 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2010
    Messages : 58
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbligne=$((cat  $1 | wc -l ))
    cela pourrait être correcte ???

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    non, mais ça_a va_a pas !?*
    incrémente nbligne de 1...
    as-tu besoin de l'afficher... avant que le compte soit terminé ?

    *cf. Les Robins des Bois (PeF)
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Février 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2010
    Messages : 58
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    non, mais ça_a va_a pas !?*
    incrémente nbligne de 1...
    as-tu besoin de l'afficher... avant que le compte soit terminé ?

    *cf. Les Robins des Bois (PeF)

    Non Non je ne veux pas l'afficher juste stocker la valeur nbligne...
    par contre je comprend pas pourquoi tu incrémentes....

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

Discussions similaires

  1. Interprétation des valeurs NULL et '' (double quotes)
    Par thatsallfunk dans le forum Administration
    Réponses: 2
    Dernier message: 09/01/2009, 15h21
  2. [sgbd] Recuperer valeurs d'un Select dans un tableau
    Par Mu_Belier dans le forum SGBD
    Réponses: 16
    Dernier message: 27/05/2005, 15h46
  3. [DateTimePicker]Recuperation valeur date
    Par jane2002 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/02/2003, 11h29

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