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


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.