#!/bin/bash # Controleer of er een rijksregisternummer is opgegeven if [ -z "$1" ]; then echo "Geen rijksregisternummer opgegeven." exit 1 fi # RRN rrn="$1" # RRN met enkel cijfers aan elkaar cijfers=$(echo "$rrn" | tr -cd '[:digit:]') ######## 11 cijfers ########## aantal_cijfers=${#cijfers} if [ "$aantal_cijfers" == 11 ]; then true else if [ "$aantal_cijfers" == 1 ]; then >&2 echo "rrn: ongeldig formaat (1 cijfer)" exit 1 else >&2 echo "rrn: ongeldig formaat ($aantal_cijfers cijfers)" exit 1 fi fi ####### Controlegetal ########### # 1900 eerste_negen=${cijfers:0:9} rest1=$(echo "$eerste_negen % 97" | bc) controlegetal1=$((97 - $rest1)) # 2000 twee_voor_negen="2${cijfers:0:9}" rest2=$(echo "$twee_voor_negen % 97" | bc) controlegetal2=$((97 - $rest2)) geennul=$(echo "${cijfers: -2}" | sed "s/^0//") if [[ "$controlegetal1" == "$geennul" || "$controlegetal2" == "$geennul" ]]; then true else >&2 echo "rrn: ongeldig controlegetal" exit 2 fi ####### Geslacht ########### geslacht=$(echo "$cijfers" | cut -c 7-9 | sed "s/^0//") geslacht=$(echo "$geslacht" | bc) geslacht_naam=$(if (( $geslacht % 2 == 0 )); then echo "vrouw" else echo "man" fi) #### Geboortedatum ##### dag=$(echo "$cijfers" | cut -c 5-6) dag_zonder_0=$(echo "$cijfers" | cut -c 5-6 | sed 's/0.$//') maand=$(echo "$cijfers" | cut -c 3-4) maand_zonder_0=$(echo "$cijfers" | cut -c 3-4 | sed 's/0.$//') if [[ "${maand_zonder_0}" -gt 12 || "$dag_zonder_0" -gt 31 ]]; then echo "rrn: ongeldige geboortedatum" >&2 exit 3 fi jaar=$(echo "$cijfers" | cut -c 1-2) if [ "$controlegetal1" == "$geennul" ]; then jaar_volledig=$(echo "19$jaar") elif [ "$controlegetal2" == "$geennul" ]; then jaar_volledig=$(echo "20$jaar") fi geboortedatum=$(echo "$dag/$maand/$jaar_volledig") ### Aangepast RRN ### nieuw_rrn=$(echo "$cijfers" | sed 's/\(.\{2\}\)\(.\{2\}\)\(.\{2\}\)\(.\{3\}\)\(.\{2\}\)/\1.\2.\3-\4.\5/') ######### eind ####### echo "rijksregisternummer: $nieuw_rrn" echo "geslacht: $geslacht_naam" echo "geboortedatum: $geboortedatum"