Facebook
From Luka, 5 Months ago, written in Bash.
This paste is a reply to my .bashrc from Alfonso Baqueiro Bernal - view diff
Embed
Download Paste or View Raw
Hits: 203
  1. #!/bin/bash
  2.  
  3. # Controleer of er een rijksregisternummer is opgegeven
  4. if [ -z "$1" ]; then
  5.     echo "Geen rijksregisternummer opgegeven."
  6.     exit 1
  7. fi
  8.  
  9. # RRN
  10. rrn="$1"
  11.  
  12. # RRN met enkel cijfers aan elkaar
  13. cijfers=$(echo "$rrn" | tr -cd '[:digit:]')
  14.  
  15. ######## 11 cijfers ##########
  16. aantal_cijfers=${#cijfers}
  17. if [ "$aantal_cijfers" == 11 ]; then
  18.     true
  19. else
  20.     if [ "$aantal_cijfers" == 1 ]; then
  21.         >&2 echo "rrn: ongeldig formaat (1 cijfer)"
  22.         exit 1
  23.     else
  24.         >&2 echo "rrn: ongeldig formaat ($aantal_cijfers cijfers)"
  25.         exit 1
  26.     fi
  27. fi
  28.  
  29. ####### Controlegetal ###########
  30.  
  31. # 1900
  32. eerste_negen=${cijfers:0:9}
  33. rest1=$(echo "$eerste_negen % 97" | bc)
  34. controlegetal1=$((97 - $rest1))
  35.  
  36. # 2000
  37. twee_voor_negen="2${cijfers:0:9}"
  38. rest2=$(echo "$twee_voor_negen % 97" | bc)
  39. controlegetal2=$((97 - $rest2))
  40.  
  41. geennul=$(echo "${cijfers: -2}" | sed "s/^0//")
  42.  
  43. if [[ "$controlegetal1" == "$geennul" || "$controlegetal2" == "$geennul" ]]; then
  44.     true
  45. else
  46.     >&2 echo "rrn: ongeldig controlegetal"
  47.     exit 2
  48. fi
  49.  
  50.  
  51. ####### Geslacht ###########
  52. geslacht=$(echo "$cijfers" | cut -c 7-9 | sed "s/^0//")
  53. geslacht=$(echo "$geslacht" | bc)
  54. geslacht_naam=$(if (( $geslacht % 2 == 0 )); then
  55.     echo "vrouw"
  56. else
  57.     echo "man"
  58. fi)
  59.  
  60. #### Geboortedatum #####
  61. dag=$(echo "$cijfers" | cut -c 5-6)
  62. dag_zonder_0=$(echo "$cijfers" | cut -c 5-6 | sed 's/0.$//')
  63. maand=$(echo "$cijfers" | cut -c 3-4)
  64. maand_zonder_0=$(echo "$cijfers" | cut -c 3-4 | sed 's/0.$//')
  65. if [[ "${maand_zonder_0}" -gt 12 || "$dag_zonder_0" -gt 31 ]]; then
  66.   echo "rrn: ongeldige geboortedatum" >&2
  67.   exit 3
  68. fi
  69. jaar=$(echo "$cijfers" | cut -c 1-2)
  70. if [ "$controlegetal1" == "$geennul" ]; then
  71.     jaar_volledig=$(echo "19$jaar")
  72. elif [ "$controlegetal2" == "$geennul" ]; then
  73.     jaar_volledig=$(echo "20$jaar")
  74. fi
  75. geboortedatum=$(echo "$dag/$maand/$jaar_volledig")
  76.  
  77. ### Aangepast RRN  ###
  78. nieuw_rrn=$(echo "$cijfers" | sed 's/\(.\{2\}\)\(.\{2\}\)\(.\{2\}\)\(.\{3\}\)\(.\{2\}\)/\1.\2.\3-\4.\5/')
  79.  
  80. ######### eind #######
  81. echo "rijksregisternummer: $nieuw_rrn"
  82. echo "geslacht: $geslacht_naam"
  83. echo "geboortedatum: $geboortedatum"