grep por palavras de não mais que um certo comprimento

9

Estou procurando uma maneira de cumprimentar coisas como: i log for E M, i 1 f x i 0, I xi 1, 3 1,.simplesmente com base no número de caracteres.

Nada nessa saída hipotética tem mais de três caracteres. Essa linha hipotética hipotética seria algo como grep -v [:alnum:] > {3},. (Só que eu simplesmente não sei como escrever isso na sintaxe grep.)

ixtmixilix
fonte
Deseja combinar caracteres como ,e .como parte de uma palavra?

Respostas:

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

As opções são:

  • -o imprime apenas palavras correspondentes
  • -w corresponde apenas a palavras inteiras

Corresponde apenas a palavras (em grep \ w = [[: alnum:]] = [A-Za-z0-9]) de comprimento de 1 a 3 (especificado por {1,3})

dying_sphynx
fonte
obrigado. a sintaxe básica de sua resposta é o que eu precisava, e eu acabei usando apenas grep '\ w \ {3}' dados e o mesmo comando com grep -v ..
ixtmixilix