domingo, 15 de marzo de 2015

Calcular letra dni español con bash

Buenas, en estos días me he puesto a meter unos datos de un lado a otro y la verdad es que es un tanto...aburrido, por lo cual me propuse de la que estoy hacerme un script y así no tener que usar los miles-cientos de servicios web que te hacen esto, que ya ves tu para que voy a usar Internet en algo tan fácil.

Por si alguno no lo sabe, la letra del DNI no es mas que un checksum-CRC o parecido que consiste en aplicar el modulo 23 a una lista de elementos, que son los que indico en letras=""

Bueno, aquí el script:

#!/bin/bash
#@autor miniminiyo http://frikidetodounpoco.blogspot.com/
#toma por entrada estandar el dni sin letra
letras="T R W A G M Y F P D X B N J Z S Q V H L C K E"
n=$(($1%23))
#echo $n
arr=($letras)
echo ${1}-${arr[$n]}

Espero le sirva a alguien ;) y sino al menos para trabajar con arrays