
Estoy buscando buscar en un archivo todas las cadenas que no contienen dígitos, se me ocurrió la siguiente expresión regular.
\D*/g
Que funciona como quiero en esta herramienta en línea:https://regex101.com/#pcre, pero cuando ejecuto el siguiente comando:
grep -c "\D*/g" nonDistortResults.txt
Está regresando 0
.
El archivo tiene el formato siguiente:
2573
kitchenDoor 2573
2573
2573
2573
2574
2574
2574
2574
kitchenDoor 2574
2574
2574
2575
2575
2575
2575
2575
kitchenDoor 2575
2576
Entonces, en el ejemplo anterior, esperaría que regresara 3
.
Respuesta1
Debes adaptar tu patrón de la siguiente manera:
grep -c \D nonDistortResults.txt
- No necesitamos el indicador 'codicioso' ya que grep ya funciona con líneas
- Las comillas no son necesarias aquí.
- La estrella puede ser cualquier número de resultados, incluido 0 (por lo que usarla devolverá verdadero para cada línea)
Si necesita volver a utilizar algunas expresiones regulares de Pearl (PCRE), puede echar un vistazo a la opción -P de grep, pero la página del manual dice:
-P, --perl-regexp
Interpreta PATTERN como una expresión regular de Perl (PCRE, ver más abajo). Esto es altamente experimental y grep -P puede advertir sobre características no implementadas.