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

 


Dernière réponse
Sujet : Comment fonctionne grep -w ?
ICE De toute façon pour grep -w, /home/alex ne compose pas un mais deux mots séparé par /,  home et alex.
Donc utilise autre chose.
 
man grep  

Code :
  1. -w, --word-regexp
  2.               Ne sélectionne que les lignes contenant une concordance formant un mot complet. 
  3.               La sous-chaîne correspondante doit donc être soit au début de la ligne, soit être  précédée  d'un
  4.               caractère ne pouvant entrer dans la constitution d'un mot. De même elle doit se trouver soit à la
  5.               fin de la ligne, soit être suivie par un caractère ne pouvant entrer dans la constitution d'un mot. 
  6.               Les caractères composant les mots sont les lettres, les chiffres et le souligné (« _ »).


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
ICE De toute façon pour grep -w, /home/alex ne compose pas un mais deux mots séparé par /,  home et alex.
Donc utilise autre chose.
 
man grep  

Code :
  1. -w, --word-regexp
  2.               Ne sélectionne que les lignes contenant une concordance formant un mot complet. 
  3.               La sous-chaîne correspondante doit donc être soit au début de la ligne, soit être  précédée  d'un
  4.               caractère ne pouvant entrer dans la constitution d'un mot. De même elle doit se trouver soit à la
  5.               fin de la ligne, soit être suivie par un caractère ne pouvant entrer dans la constitution d'un mot. 
  6.               Les caractères composant les mots sont les lettres, les chiffres et le souligné (« _ »).

weed et bien au vu des explications, je suis oki avec mais cela contredis mes resultat ...
tu es alors d'accord avec que /home/alex ne compose qu'un seul mot ?
 
et donc que /home/alex != /alex, non ?
 
je ne veux pas comparer une ligne entiere.
ICE Tout autres caractères que les lettres, les chiffres et le "_", sont considéré comme des séparateurs.
Si tu recherches les occurences par ligne entière, utilise plutôt grep -cx
weed

root@mobile:/home/weed/script # awk -F ":" -v val=$tpartage '{print $6}' list | sed "s/|/ /g"
/home/alex /confi/
/home/alex confi/


 
 
et lorsque je veux compter le nombre d'occurence de "/home" uniquement, grep me sort 2 alors que je lui ai bien precisé, sort moi uniquement les mots en entier qui contiennent "/home".  
pour moi "/home/alex" != /home, je devrais obtenir 0 et non pas 2
 

root@mobile:/home/weed/script # awk -F ":" -v val=$tpartage '{print $6}' list | sed "s/|/ /g" | grep -cw "/home"
2


 
Comment faire avec la commande grep ?
 
J'aimerais eviter une fois de plus comparer un par un avec un for


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