com awk
:
awk -F '[[:digit:]]' 'NF > 18'
Usamos dígitos como o separador de campo, portanto, o número de campos será um mais o número de dígitos ( x1y
é dividido em x
e y
), então, acima, estamos procurando as linhas que têm pelo menos 18 dígitos.
(com mawk
, substituir [:digit:]
com 0-9
. mawk
não suporta classes de caracteres POSIX, mas seu [0-9]
contrário a outras implementações awk
corresponde a 0123456789 somente independentemente da localidade. Portável, você pode usar [0123456789]
, ou você pode usar [0-9]
se você souber que o texto não contém dados não-ASCII).
Para linhas que têm exatamente 18 dígitos, isso seria:
awk -F '[[:digit:]]' 'NF == 19'
Com sed
, por pelo menos 18 dígitos:
sed -e 's/[[:digit:]]/&/18;t' -e d
com grep
:
grep -E '(.*[[:digit:]]){18}'