grep para palabras de no más de cierta longitud

9

Estoy buscando una forma de asimilar cosas como: i log for E M, i 1 f x i 0, I xi 1, 3 1,.simplemente en función del número de caracteres.

Nada en ese resultado hipotético es más largo que tres caracteres. Esta hipotética de una sola línea se vería algo como, grep -v [:alnum:] > {3}. (Excepto que simplemente no sé cómo escribir eso en la sintaxis grep).

ixtmixilix
fuente
¿Quieres unir caracteres como ,y .como parte de una palabra?

Respuestas:

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

Las opciones son:

  • -o imprimir solo palabras coincidentes
  • -w coincide solo con palabras completas

Solo coincide con palabras (en grep \ w = [[: alnum:]] = [A-Za-z0-9]) de longitud de 1 a 3 (especificado por {1,3})

dying_sphynx
fuente
Gracias. la sintaxis básica de su respuesta es lo que necesitaba, y terminé usando datos grep '\ w \ {3}' y el mismo comando con grep -v ..
ixtmixilix