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:
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:
let 'nbO=nbligneO"$i" - nbligne'
en effet j'ai fait un
Code:
bash -x :/testscript blabla.smi
afin de débugger le code et c'est à cette ligne que le programme bloque avec cette erreur
Code:
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