Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1262 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Question commande Unix ( Résolue )

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question commande Unix ( Résolue )

n°668767
claudic
Ce n'est qu'un faut breton.
Posté le 27-04-2005 à 10:08:02  profilanswer
 

Bonjour,
 
J’aurais besoin d’une commande me permettant de compter le nombre de fois qu’un caractère apparaît dans une variable.
 
Les commandes que je connais ( « grep » et « wc » ) ne me fournissent qu’un nombre de lignes.
 
Merci d'avance


Message édité par claudic le 28-04-2005 à 16:06:28

---------------
--------------------------------------------
mood
Publicité
Posté le 27-04-2005 à 10:08:02  profilanswer
 

n°668778
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 27-04-2005 à 10:22:38  profilanswer
 

c'est en première page http://rulzofpunk.free.fr/smileys/batte_fou.gif
 
tu te fous pas un peu du monde ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°668795
claudic
Ce n'est qu'un faut breton.
Posté le 27-04-2005 à 10:36:54  profilanswer
 

black_lord a écrit :

c'est en première page http://rulzofpunk.free.fr/smileys/batte_fou.gif
 
tu te fous pas un peu du monde ?


 
Il faut apprendre à lire avant de faire des remarques.
 
Sur la première page on trouve compter le nombre de caractère dans une variable.
 
Dans mon cas, je cherche le nombre de fois qu'apparait un caractère dans une variable.
 
Je pense qu'il y a une nuance.


---------------
--------------------------------------------
n°668800
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 27-04-2005 à 10:40:55  profilanswer
 

oops [:slackerbitch]
 
toutes mes excuses :jap:


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°668815
claudic
Ce n'est qu'un faut breton.
Posté le 27-04-2005 à 10:53:49  profilanswer
 

black_lord a écrit :

oops [:slackerbitch]
 
toutes mes excuses :jap:


 
Ya pas de mal, mais là, je pète un plomb.
Je pensais que c'était simple.  :cry:  
 


---------------
--------------------------------------------
n°668825
deather2
Posté le 27-04-2005 à 11:34:32  profilanswer
 

Pas difficile avec un ptit programme en C, allez j'te fais ça:

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(int argc, char **argv)
  4. {
  5. int  nCount = 0;
  6. int  nStrPos = 0;
  7. if (argc != 3)
  8. {
  9.  fprintf(stderr, "Usage: %s [string] [char]\n", argv[0]);
  10.  return (-1);
  11. }
  12. while (nStrPos < strlen(argv[1]))
  13. {
  14.  if (argv[1][nStrPos++] == argv[2][0])
  15.   nCount++;
  16. }
  17. printf("%i\n", nCount);
  18. return (0);
  19. }


 
Tu le compile avec :

Code :
  1. $ gcc -o count_char ./nom_source.c


Puis tu le lance comme ça:

Code :
  1. $ count_char $VARIABLE a


Pour compter le nombre de a.


Message édité par deather2 le 27-04-2005 à 11:34:52
n°668827
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 27-04-2005 à 11:37:31  profilanswer
 

+1 apparemment en shell y'a pas moyen 'proprement'


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°668835
claudic
Ce n'est qu'un faut breton.
Posté le 27-04-2005 à 11:50:47  profilanswer
 

OK, je vous remercie.
 
J'aime beaucoup le code.
 
Je voulais surtout éviter de le coder en C car c'est un script pour le serveur de production.
Je ne suis pas certain que la prod acceptera.
 
Merci encore, et bonne journée.
Si on me fourni une solution plus propre ( demande effectué à nos spécialistes Unix ), je la mettrai en ligne.


---------------
--------------------------------------------
n°668857
arsunik
ma tuxitude me beastifie
Posté le 27-04-2005 à 12:15:48  profilanswer
 

Avec perl :

Code :
  1. echo "aabababaaua" | perl -ne 'print s/a//g'


 
En script bash pur :

Code :
  1. toto=abdferahjeak
  2. echo $((${#toto}-${#toto//a}))


n°669430
claudic
Ce n'est qu'un faut breton.
Posté le 28-04-2005 à 14:29:52  profilanswer
 

Voici la solution que je recherchais.
Merci encore pour votre aide.
 
Dans cet exemple, le résultat est le nombre de fois qu'apparait le ";".
A='ddsC;dd;ee;Xv;oui'
A=${A//[!;]}
echo ${#A}
 
Merci encore.
 
PS : Comment fais ton pour modifier le titre ?
Je voudrais ajouter que la solution est trouvée.


Message édité par claudic le 28-04-2005 à 14:33:36

---------------
--------------------------------------------
mood
Publicité
Posté le 28-04-2005 à 14:29:52  profilanswer
 

n°669471
lukefab
Posté le 28-04-2005 à 14:49:48  profilanswer
 

clic sur l'icone d'édition du premier post


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Question commande Unix ( Résolue )

 

Sujets relatifs
[linux+emacs+script+modèle] question lecture de fichierChtite question stupide sur les liens :d
CUPS et ligne de commandeLa commande TOP
Petits problèmes / question mandrake 10.1 KDEQuestion sur mandrake move
Commande surment trés simple ( cut )Question con. Comment installer un compilateur (gcc)sans compilateur ?
commande Unix 
Plus de sujets relatifs à : Question commande Unix ( Résolue )


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR