Bonjour,
Je sollicite votre aide dans un script shell que je suis en train de faire...
Déjà voici le script
Que fait le script alors il doit compter le nombre de ligne d'un fichier $1 et stocker cette valeurCode:
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
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 ligneen effet j'ai fait unCode:let 'nbO=nbligneO"$i" - nbligne'
afin de débugger le code et c'est à cette ligne que le programme bloque avec cette erreurCode:bash -x :/testscript blabla.smi
Je viens demander votre aideCode:line 17: let: nbO=nbligneO$i - nbligne: syntax error in expression (error token is "$i - nbligne")
De plus ma ligneest-elle juste ?Code:let 'i="$i"+1'
Merci
Cédric