grep pour des mots ne dépassant pas une certaine longueur

9

Je cherche un moyen de comprendre des choses comme: i log for E M, i 1 f x i 0, I xi 1, 3 1,.simplement en fonction du nombre de caractères.

Rien dans cette sortie hypothétique ne dépasse trois caractères. Cette hypothétique doublure ressemblerait à quelque chose comme grep -v [:alnum:] > {3}. (Sauf que je ne sais pas comment écrire cela dans la syntaxe grep.)

ixtmixilix
la source
Voulez-vous faire correspondre des caractères comme ,et .comme faisant partie d'un mot?

Réponses:

19
grep -o -w '\w\{1,3\}' data

Les options sont:

  • -o imprimer uniquement les mots correspondants
  • -w ne correspond qu'à des mots entiers

Il ne correspond qu'à des mots (dans grep \ w = [[: alnum:]] = [A-Za-z0-9]) d'une longueur de 1 à 3 (spécifié par {1,3})

dying_sphynx
la source
Merci. la syntaxe de base de votre réponse est ce dont j'avais besoin et j'ai fini par utiliser les données grep '\ w \ {3}' et la même commande avec grep -v ..
ixtmixilix