Tenho uma máquina Windows-10, na qual instalei uma plataforma Ubuntu, como pode ser visto no seguinte uname -a
resultado:
Linux DOMINIQUEDS 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
Eu tenho alguns arquivos que contêm muitas entradas como:
18bd6344 mfc110u!CPtrArray Size:[1046]
18bd63f4 mfc110u!CPtrArray Size:[1046]
18bd64a4 mfc110u!CPtrArray Size:[1046]
18bdcef4 mfc110u!CPtrArray Size:[4]
18bdcfa4 mfc110u!CPtrArray Size:[8]
18bdd054 mfc110u!CPtrArray Size:[49]
18bdd104 mfc110u!CPtrArray Size:[498]
18bdd1b4 mfc110u!CPtrArray Size:[498]
Os tamanhos mencionados variam de 1 a muitos milhões, e estou interessado nos maiores, digamos que contenham pelo menos três dígitos.
Eu posso fazer isso usando a seguinte expressão regular:
grep "Size:\[[0-9][0-9][0-9]" Log1.log // this is working fine
Eu esperava que a seguinte expressão regular desse o mesmo resultado:
grep "Size:\[[0-9]{3,}" Log1.log
Mas não consigo nada.
Acabei man grep
de verificar e esta explicação contém o seguinte:
...
Repetição
...
{n,} O item anterior é correspondido n ou mais vezes.
Então, por que isso não está funcionando?
Como está no Ubuntu, acho que você tem GNU grep. A página de manual também diz:
E depois:
Portanto, você precisa usar
\{3,\}
, ou usar o-E
sinalizador para habilitar EREs. Eu sugeriria o último, já que essas barras invertidas em todos os lugares ficam feias rapidamente.