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

  FORUM HardWare.fr
  Linux et OS Alternatifs

  expression reguliere dans un grep

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

expression reguliere dans un grep

n°196036
jultey
Posté le 28-11-2002 à 00:18:27  profilanswer
 

Salut,
J'ai un p'tit problème avec une expression régulière dans un shell...
 
Je voudrais lister les fichiers qui ont un nom de 4 caracteres et eventuellement une extension quelconque (XXXX[.extension])
 
J'y suis arrivé avec cette commande :
 
ls /home/jultey/essai/ | grep "\<[a-zA-Z0-9]\{4\}\>"
 
qui rend bien ce que j'attends :
1324.to
allo.lpg
argp
argz.h
stab.h
time.h
titi
toto
utmp.h
 
Mais je ne comprend pas ou le shell voit que l'extension est facultative...
puisqu'entre le {4} et le \> je n'ai rien mit...
 
Si quelqu'un pouvait m'éclairer...
Merci

mood
Publicité
Posté le 28-11-2002 à 00:18:27  profilanswer
 

n°213083
jultey
Posté le 18-01-2003 à 13:06:20  profilanswer
 

Cette commande semble mieux marcher.
 
ls -al /usr/include/ | grep "^-.* \<\w\{4\}\>\.\?\w*\*\?$"
 
Tentative d'explications :
'^-'
= un '-' en debut de ligne (fichiers ordinaires)
 
'.*'
= suite de caractères quelconques (les diff. infos du ls -al)
 
' \<'
= début de mot (debut du nom de fichier)
 
'\w\{4\}' = '[[:alnum:]]\{4\}' = '[a-zA-Z0-9]\{4\}'
= 4 caractères alphanumériques (nom du fichier)
 
'\>'
= fin de mot
 
'\.\?'
= un point facultatif
 
'\w*' = '[[:alnum:]]*' = '[a-zA-Z0-9]*'
= des caracteres alphanumériques quelconques facultatifs (l'extension)
 
'\*\?'
=> une '*' facultative a la fin du fichier (ci celui-ci est un
fichier executable -je crois-)
 
'$'
=> fin de ligne
 

n°213099
myocastor
Posté le 18-01-2003 à 13:32:50  profilanswer
 

jultey a écrit :

Salut,
J'ai un p'tit problème avec une expression régulière dans un shell...
 
Je voudrais lister les fichiers qui ont un nom de 4 caracteres et eventuellement une extension quelconque (XXXX[.extension])
 
J'y suis arrivé avec cette commande :
 
ls /home/jultey/essai/ | grep "\<[a-zA-Z0-9]\{4\}\>"
 
qui rend bien ce que j'attends :
1324.to
allo.lpg
argp
argz.h
stab.h
time.h
titi
toto
utmp.h
 
Mais je ne comprend pas ou le shell voit que l'extension est facultative...
puisqu'entre le {4} et le \> je n'ai rien mit...
 
Si quelqu'un pouvait m'éclairer...
Merci


 
Dans ton modèle, tu ne précises pas le début ou la fin de la chaine. Donc le grep cherche 4 caractères (hors ponctuation, c'est à dire en particulier sans . ) qui se suivent.
le utmp.h  sort bien  
mais un un.deu.troi   marcherait aussi ....

n°213103
minusplus
Posté le 18-01-2003 à 13:37:46  profilanswer
 


find ./ \( -name "????" -o -name "????.*" \) -print
 

n°213105
parano
Time... to die...
Posté le 18-01-2003 à 13:40:51  profilanswer
 

minusplus a écrit :


find ./ \( -name "????" -o -name "????.*" \) -print
 




 
J'hesitais a crier "minnnnuusssplusss onnnn t'apppeeelllleuhhhh"  :D

n°213107
minusplus
Posté le 18-01-2003 à 13:41:57  profilanswer
 

ça me fait du mal de répondre avec kêk chose qui n'est pas une Regexp d'ailleurs ! :D

n°213144
sebweb
Posté le 18-01-2003 à 14:51:19  profilanswer
 

jultey a écrit :

Salut,
J'ai un p'tit problème avec une expression régulière dans un shell...
 
Je voudrais lister les fichiers qui ont un nom de 4 caracteres et eventuellement une extension quelconque (XXXX[.extension])
 
J'y suis arrivé avec cette commande :
 
ls /home/jultey/essai/ | grep "\<[a-zA-Z0-9]\{4\}\>"
 
qui rend bien ce que j'attends :
1324.to
allo.lpg
argp
argz.h
stab.h
time.h
titi
toto
utmp.h
 
Mais je ne comprend pas ou le shell voit que l'extension est facultative...
puisqu'entre le {4} et le \> je n'ai rien mit...
 
Si quelqu'un pouvait m'éclairer...
Merci


 
C'est pas expression réguliere, mais expression rationelle.
C'est uen faute de traduction qui est malheureusement rentrée dans le language courant
 


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

  expression reguliere dans un grep

 

Sujets relatifs
[Urgent] [grep] comment retirer les ligne qui commence par #l'incerse d'un grep....
besoin d'aide avec les commandes find et grep combinéesdoublons d'un grep à virer
help shell - grep (solaris)scripting bash: retirer les doublons retournés d'un grep
Plus de sujets relatifs à : expression reguliere dans un grep


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