2010-05-22 11 views

Répondre

9

Essayer de se rappeler combien la langue regex grep prend en charge ... ne

grep '^....$' words 

travail pour vous? Notez que puisque vous recherchez un fichier dictionnaire, je ne suis pas sûr que vous ayez besoin de vous limiter aux lettres.

+0

Qu'en est-il des espaces? –

+0

@DrunkenMaster qu'en est-il d'eux? Nous recherchons un fichier dictionnaire ici, donc je ne m'attendrais pas à ce qu'il y en ait. Si vous avez votre propre, différente, question, vous pouvez [le demander ici] (http://stackoverflow.com/questions/ask) – AakashM

13

Il devrait être:

grep -E '^[[:alpha:]]{4}$' words 

Nous l'ancre (car une chaîne de 5 lettres contient également une chaîne de 4 lettres), et les classes de caractères POSIX doit être contenue dans une expression de support ([]). En outre, nous citons pour le shell. Et il doit être étendu, donc -E.

+0

Désolé, j'ai oublié le -E. –

+2

+1. Bon produit. Même sans -E: 'grep '^ [[: alpha:]] \ {4 \} $' words' – bernie

+0

Votre réponse modifiée fonctionne, mais la solution d'Aakash est légèrement plus succincte, donc je lui donne l'acceptation. Merci de votre aide. Upvotes tout autour. –