miércoles, 4 de octubre de 2017

Conocer cuantos números enteros hay en un fichero

En ocasiones cuando realizamos scripts en linux, necesitamos saber si un parámetro es un número o no para poder depurar errores.
Una de las formas mas sencillas es utilizando una comprobación de patrones mediante el comando grep.

En este ejemplo, vamos a crear un archivo llamado lineas.txt que contendrá lineas con textos y números.

Para conocer el número de líneas que contienen números, habrá que realizar una llamada mediante la línea de comandos de la siguiente forma:

grep -c '^[0-9]\+$' lineas.txt

Este comando nos devolverá el número de lineas que corresponden con números enteros positivos dentro del fichero lineas.txt. 
El parámetro -c le indicará a grep que nos devuelva el número de coincidencias en lugar de el texto coincidente.
A continuación nos encontramos con la expresión ^[0-9]\+$ entrecomillada. En esta expresión regular indicamos que busque una cadena que comience, indicado mediante ^, con un carácter en el intervalo [0-9] es decir, un dígito. Además le indicamos que este dígito aparece 1 o muchas veces, esto se indica mediante los caracteres \+, y por último con el carácter dolar $ le indicamos que también acabe con un dígito. 

Basándonos en este ejemplo, podemos crear un Script que reciba como parámetro un número y nos devuelva 1 o 0 en función de si es o no un número.

No hay comentarios:

Publicar un comentario