
Estou procurando pesquisar em um arquivo todas as strings que não contêm dígitos. Criei o seguinte regex.
\D*/g
O que funciona como eu quero nesta ferramenta online:https://regex101.com/#pcre, mas quando executo o seguinte comando:
grep -c "\D*/g" nonDistortResults.txt
Está voltando 0
.
O arquivo está formatado da seguinte forma:
2573
kitchenDoor 2573
2573
2573
2573
2574
2574
2574
2574
kitchenDoor 2574
2574
2574
2575
2575
2575
2575
2575
kitchenDoor 2575
2576
Portanto, no exemplo acima, eu esperaria que ele retornasse 3
.
Responder1
Você precisa adaptar seu padrão da seguinte forma:
grep -c \D nonDistortResults.txt
- Não precisamos do sinalizador 'ganancioso' pois o grep já funciona com linhas
- As cotações não são obrigatórias aqui
- A estrela pode ter qualquer número de resultados, incluindo 0 (portanto, usá-la retornará verdadeiro para cada linha)
Se você precisar usar novamente algumas expressões regulares Pearl (PCRE), você pode dar uma olhada na opção -P do grep, mas a página de manual diz:
-P, --perl-regexp
Interpreta PATTERN como uma expressão regular Perl (PCRE, veja abaixo). Isto é altamente experimental e grep -P pode alertar sobre recursos não implementados.