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.)


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})


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.