grep -x '.\{3,10\}'
onde
-
-x
padrão de correspondência para linha inteira -
.
de qualquer símbolo -
{3,10}
quantifica de 3 a 10 vezes o símbolo anterior (no caso de qualquer um)
NOTA: Esta questão é o complemento deste Q & A: Como" grep "para comprimento de linha * não * em um determinado intervalo?
Eu preciso obter apenas as linhas de um arquivo de texto (uma lista de palavras, separadas por nova linha) que tenha um intervalo de comprimento mínimo ou igual a 3 caracteres, mas não maior ou igual a 10.
Exemplo:
ENTRADA:
egyezményét
megkíván
ki
alma
kevesen
meghatározó
OUTPUT:
megkíván
alma
kevesen
Pergunta: Como posso fazer isso em bash
?
usando o egrep
egrep '^.{3,10}$'
corresponde do início ao fim das linhas para 3 ou mais caracteres, mas menor ou igual a 10 caracteres.
Usando sed
:
sed '/^.\{3,10\}$/!d'
Ou:
sed -r '/^.{3,4}$/!d'