[Script shell] Incrémenter un entier
0seb0
Messages postés
37
Statut
Membre
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
Ca doit être couillon, mais je galère...
Voici ce que je veux faire :
- savoir combien de fois un fichier contient la chaine "Enlève ta culotte, bébé : j'arrive !" (NdlR : le lecteur avisé relèvera l'effort d'originalité...)
- et juste pour mentir ou parce que je trouve ça plus funky, rajouter "un" à ce nombre.
Pour l'instant, j'ai ça :
Mais...
$(expr 3 + 1)
quand la chaine apparait 3 fois dans le fichier par exemple. Alors que moi, naïf et dépressif, j'attends le résultat "4".
J'ai beau essayer d'inombrables combinaisons de positions des $, Bébé me résiste aujourd'hui ! :p
Ca doit être couillon, mais je galère...
Voici ce que je veux faire :
- savoir combien de fois un fichier contient la chaine "Enlève ta culotte, bébé : j'arrive !" (NdlR : le lecteur avisé relèvera l'effort d'originalité...)
- et juste pour mentir ou parce que je trouve ça plus funky, rajouter "un" à ce nombre.
Pour l'instant, j'ai ça :
grep "Enlève ta culotte, bébé : j'arrive !" ./MonFichierTropCool | wc -l | cat | read NbIteChaine NbIteChaine=$(expr $NbIteChaine + 1)
Mais...
echo $NbIteChainene veut rien savoir et me renvoie
$(expr 3 + 1)
quand la chaine apparait 3 fois dans le fichier par exemple. Alors que moi, naïf et dépressif, j'attends le résultat "4".
J'ai beau essayer d'inombrables combinaisons de positions des $, Bébé me résiste aujourd'hui ! :p
A voir également:
- [Script shell] Incrémenter un entier
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Shell addition ✓ - Forum Shell
9 réponses
Enfin ! C'était un problème de syntaxe sur l'utilisation de "expr". La réponse et donc :
Problème résolu. :-)
grep -c "Enlève ta culotte, bébé : j'arrive !" ./MonFichierTropCool | cat | read NbIteChaine NbIteChaine=`expr $NbIteChaine + 1`
Problème résolu. :-)
pourquoi ne pas utiliser l'option -c de grep :
-c Suppress normal output; instead print a count of matching lines
for each input file
-c Suppress normal output; instead print a count of matching lines
for each input file
Ca ne serait pas une question d'espaces dans la ligne suivante ?
NbIteChaine=$(expr $NbIteChaine + 1)
Salut,
Et est-ce qu'un :
;-))
Et est-ce qu'un :
NbIteChaine=$(expr $(grep -c grep -c "Enlève ta culotte, bébé : j'arrive !" ./MonFichierTropCool) + 1)ne serait pas plus simple ?
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Enlève le point d'exclamation de ton expression :
$(grep -c "Enlève ta culotte, bébé : j'arrive " ./MonFichierTropCool)Ça devrait passer ;-))
Toujours pas :(
Mais j'avais raté un détail...
Il faut enlever les guillemets de mon message <12>. Ca va peut-être vous mettre la puce à l'oreille, parce que moi, ça ne m'inspire pas plus !
Mais j'avais raté un détail...
Il faut enlever les guillemets de mon message <12>. Ca va peut-être vous mettre la puce à l'oreille, parce que moi, ça ne m'inspire pas plus !
Pour régler la question du "!", je l'ai viré et... ça ne change rien.
Monde cruel...
Monde cruel...
Je fais un peu de proselytisme pour awk:
awk '
BEGIN {sum = 1;}
/"Enlève ta culotte, bébé : j'arrive !"/ { sum += 1; }
END { print "nombre de lignes: " sum; }'
MonFichierTropCool
Pour les operations mathematiques en ksh, je trouve que les double parentheses sont + pratiques:
toto = 5
(( toto = toto + 1 ))
print "toto = ${toto}"
est plus pratique que expr mais c'est affaire de gout...
awk '
BEGIN {sum = 1;}
/"Enlève ta culotte, bébé : j'arrive !"/ { sum += 1; }
END { print "nombre de lignes: " sum; }'
MonFichierTropCool
Pour les operations mathematiques en ksh, je trouve que les double parentheses sont + pratiques:
toto = 5
(( toto = toto + 1 ))
print "toto = ${toto}"
est plus pratique que expr mais c'est affaire de gout...