2

Manera fácil y difícil de saber si es un numero de teléfono

Hay distintas formas de saber si en un archivo de texto hay números de teléfono. Aunque algo importante a considerar es que el formato de un numero telefónico dependerá de tu pais. En mi caso yo voy a usar el siguiente formato 722-58-51-903.

Entonces, voy a necesitar que en la consola crees un archivo de texto y que le llames file.txt, además de eso, necesitas ir a darle un repaso al comando grep en la consola, ya que es el que voy a estar utilizando. El archivo de texto tendrá el siguiente contenido:

teléfono: 722-54-32-09a
teléfono: 722-58-51-902
teléfono: 722-98-23-091
teléfono: 722-98-13-321
teléfono: 234.23.76.213
teléfono: 234%23%82%123

Entonces la manera mas fácil es usando el punto (.), el cual es el que nos ayuda a saber si hay algún carácter, en este caso puede ser una letra, un numero o cualquier otra cosa, por lo que podríamos hacer lo siguiente:

grep -E -no'...-..-..-...'file.txt

De esa forma, el output seria el siguiente:

722-54-32-09a
722-58-51-902
722-98-23-091
722-98-13-321

Como nos podemos dar cuenta, al principio hay uno que no es exactamente correcto, ya que tiene una a al final, eso se puede arreglar haciendo el comando un poco mas complejo, quedando el comando de la siguiente manera:

grep -E -no '\d{3}.\d{2}.\d{2}.\d{3}' // puede ser de esta forma o
grep -E -no '[0-9]{3}.[0-9]{2}.[0-9]{2}.[0-9]{3}'

Alguno de esos dos códigos nos retornara lo siguiente

722-58-51-902
722-98-23-091
722-98-13-321
234.23.76.213
234%23%82%123

Nos saca a todos estos, aunque no sean exactamente números porque usamos el punto de nuevo (.), el cual quiere decir que no importa que carácter sea, cumple con el match.

Al final, lo correcto seria hacer lo que hicimos arriba pero con el puro guion, en vez de el punto, quedando de la siguiente manera:

grep -E -no '\d{3}-\d{2}-\d{2}-\d{3}' // puede ser de esta forma o
grep -E -no '[0-9]{3}-[0-9]{2}-[0-9]{2}-[0-9]{3}'

En ese caso el output seria el siguiente:

722-58-51-902
722-98-23-091
722-98-13-321

Escribe tu comentario
+ 2
2
5250Puntos

Muchas gracias. una interesante forma de resolverlo. te da más perspectiva de lo aprendido 😄

2
51364Puntos
un año

Si, de hecho yo voy a empezar un programa con expresiones regulares donde se resuelvan ecuaciones de 1er grado en JavaScript.
.
Las expresiones regulares son muy útiles