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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  question sur "read" entre autres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question sur "read" entre autres

n°238645
vanik
Posté le 02-11-2002 à 19:44:14  profilanswer
 

bonjour, je debute, donc j'ai qq petites questions :)
 
voila, je voudrais faire un petit script qui compte le nombre de fois qu'un mot apparait dans un fichier. mon probleme c'est que j'arrive à compter, mais quand je sors de ma boucle, mon compteur reprend la valeur 0.
 
##################################
##########
#compteur#
##########
# usage : compteur nom-du-fichier
 
#! /bin/sh
set -x
#compte=0
# disons qu'on cherche le "mot" #
grep \# $1 | while read ligne
  do
    let compte=`expr $compte + 1`
    echo $compte
  done
# et voila mon probleme...
echo compte vaut $compte
##################################
 
voila, je dois mal m'y prendre, y'a certainement plus simple (avec un grep?) mais je debute... merci de m'aider :)
 
 
ah oui et aussi : je n'ai pas trop compris le fonctionnement de la commande read. si on fait "cat $1 | while read mot", que vaudra $mot ?? est ce qu'il vaudra le 1er mot, puis le 2eme, puis le 3eme.... ou bien tous les mots de la 1ere ligne, puis ceux de la 2eme, puis.... ??
 
merci bcp car j'ai un peu de mal.

mood
Publicité
Posté le 02-11-2002 à 19:44:14  profilanswer
 

n°238667
kuroineko
je mamgerais bien un truc la..
Posté le 02-11-2002 à 20:46:38  profilanswer
 

Vanik a écrit a écrit :

bonjour, je debute, donc j'ai qq petites questions :)
 
voila, je voudrais faire un petit script qui compte le nombre de fois qu'un mot apparait dans un fichier. mon probleme c'est que j'arrive à compter, mais quand je sors de ma boucle, mon compteur reprend la valeur 0.
 
##################################
##########
#compteur#
##########
# usage : compteur nom-du-fichier
 
#! /bin/sh
set -x
#compte=0
# disons qu'on cherche le "mot" #
grep \# $1 | while read ligne
  do
    let compte=`expr $compte + 1`
    echo $compte
  done
# et voila mon probleme...
echo compte vaut $compte
##################################
 
voila, je dois mal m'y prendre, y'a certainement plus simple (avec un grep?) mais je debute... merci de m'aider :)
 
 
ah oui et aussi : je n'ai pas trop compris le fonctionnement de la commande read. si on fait "cat $1 | while read mot", que vaudra $mot ?? est ce qu'il vaudra le 1er mot, puis le 2eme, puis le 3eme.... ou bien tous les mots de la 1ere ligne, puis ceux de la 2eme, puis.... ??
 
merci bcp car j'ai un peu de mal.




 
 


kneko@linux:/a-graver> cat > test
fdfsdf
sddsfdsfs
dffsd
toto
fdsfdsf
dsffdsf
fsdfsd
fdsfsd
fsd
toto
fdfdsf
dfssdfsd
fdssdfsd
toto
toto
fsdsfsd
fsdfsd
 
kneko@linux:/a-graver> grep toto test | wc -l
      4
kneko@linux:/a-graver>
kneko@linux:/a-graver> toto=`grep toto ./* | wc -l`
kneko@linux:/a-graver> echo $toto
4
kneko@linux:/a-graver>


 
moi pour compter les textes 'toto' dans tous les fichiers du repertoire courrant je ferrai ca :
 
#!/bin/sh
COMPTER=`grep toto ./* | wc -l`
echo $COMPTER
 
 
 
tout simplement....
 
ou  
 
#!/bin/sh
COMPTER=`grep $1 $2 | wc -l`
echo $COMPTER
 
donc paramettre 1 texte cherche
parametre 2 le/les fichiers a fouiller.


Message édité par kuroineko le 02-11-2002 à 20:48:46

---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
n°238681
vanik
Posté le 02-11-2002 à 21:23:41  profilanswer
 

merci à toi pour ton aide. je venais justement pr dire que j'avais decouvert la commande wc :)
tu as mm etendu le truc pr plusieurs fichiers ds un rep... (moi c juste un seul fichier qui m'interesse)
mais il y a un probleme si le mot apparait 2 fois sur la mm ligne, il ne sera compté qu'une fois. donc je pense qu'il faudrait traiter le fichier mot à mot et nom ligne par ligne.
 
en fait, en plus, je voudrais faire ca pour chaque mot du fichier, donc j'aimerais eviter de recompter un mot qui est ecrit plusieurs fois. ca veut dire qqc ce que g dit là ? :D  :D  
 
merci de m'aider.

n°238694
vanik
Posté le 02-11-2002 à 21:46:24  profilanswer
 

une idée : si on remplace tous les caracteres d'espace par un retour charriot et qu'ensuite on fasse un wc -l, alors on aura le nombre exact de fois que le mot apparait dans le fichier.
donc g voulu essayer avec un sed -e s/\ /\\n/ (enfin un truc du genre) mais ca n'a pas marché.
 
aidez-moi s'il vous plait :(


Message édité par vanik le 02-11-2002 à 21:50:42
n°238765
kuroineko
je mamgerais bien un truc la..
Posté le 03-11-2002 à 11:08:54  profilanswer
 

Vanik a écrit a écrit :

une idée : si on remplace tous les caracteres d'espace par un retour charriot et qu'ensuite on fasse un wc -l, alors on aura le nombre exact de fois que le mot apparait dans le fichier.
donc g voulu essayer avec un sed -e s/\ /\\n/ (enfin un truc du genre) mais ca n'a pas marché.
 
aidez-moi s'il vous plait :(




 
c'est ta syntaxe du sed qui doit pas aller, mais la solution c'est bien ca...
verifies ta syntaxe ca doit suffir


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  question sur "read" entre autres

 

Sujets relatifs
[SQL] Petite question sur les cles etrangeresQuestion sur le code des pages web
Question de CSS[VC++] question de noob
[PHP] Petite question toute simpleQuestion sur les interfaces
Question de nioubi sur le forum PPC : affichage du code des smileys[ASP] petite question accès base acces?
Question ORACLEquestion dos..
Plus de sujets relatifs à : question sur "read" entre autres


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