From: Einar Jørgen Haraldseid <einar.haraldseid@ntnu.no>
Date: Fri, 9 May 2025 12:16:06 +0000 (+0200)
Subject: Script for å generere tilfeldige navn som er mer eller mindre realistiske
X-Git-Url: https://git.slaskete.net/einar-bin/commitdiff_plain/refs/heads/master?ds=sidebyside

Script for å generere tilfeldige navn som er mer eller mindre realistiske
---

diff --git a/generer-navneliste.sh b/generer-navneliste.sh
new file mode 100755
index 0000000..257e765
--- /dev/null
+++ b/generer-navneliste.sh
@@ -0,0 +1,770 @@
+#!/bin/bash
+# Lag kommaseparert liste med tilfeldige for- og etternavn
+# Generatoren lager alltid étt etternavn, med eller uten bindestrek
+
+# Generer så mange som det er bedt om, eller kun ett navn hvis det ikke er oppgitt et gyldig antall
+Reg='^[0-9]+$'
+if ! [[ ${1} =~ ${Reg} ]]; then
+  Antall=1
+else
+  Antall=${1}
+fi
+
+echo "Fornavn,Etternavn"
+
+while [ "${Antall}" -gt 0 ]; do
+  # Arrayer med kvinnelige og mannlige fornavn, og etternavn
+  Fornavn_F=(
+    'Ada'
+    'Agnes'
+    'Aiko'
+    'Aina'
+    'Akira'
+    'Alexis'
+    'Alice'
+    'Alma'
+    'Amalie'
+    'Amanda'
+    'Amelia'
+    'Andrea'
+    'Ane'
+    'Anette'
+    'Anita'
+    'Anja'
+    'Ann'
+    'Anna'
+    'Anne'
+    'Anneli'
+    'Anniken'
+    'April'
+    'Aslaug'
+    'Astrid'
+    'Aud'
+    'Aurora'
+    'Ava'
+    'Beate'
+    'Benedicte'
+    'Bente'
+    'Berit'
+    'Birgit'
+    'Bjørg'
+    'Bodil'
+    'Bridget'
+    'Brit'
+    'Britt'
+    'Buffy'
+    'Camilla'
+    'Caroline'
+    'Cathrine'
+    'Cecilia'
+    'Cecilie'
+    'Celine'
+    'Charlotte'
+    'Chen'
+    'Chloe'
+    'Christina'
+    'Christine'
+    'Dagny'
+    'Desdemona'
+    'Desiderata'
+    'Donjetë'
+    'Ebba'
+    'Egwene'
+    'Eirin'
+    'Eli'
+    'Elin'
+    'Eline'
+    'Elisabeth'
+    'Elise'
+    'Elisha'
+    'Ella'
+    'Ellen'
+    'Ellinor'
+    'Elsa'
+    'Else'
+    'Emilie'
+    'Emily'
+    'Emma'
+    'Esmerelda'
+    'Eva'
+    'Farah'
+    'Freya'
+    'Frida'
+    'Gerd'
+    'Grace'
+    'Greta'
+    'Grete'
+    'Grethe'
+    'Gro'
+    'Gry'
+    'Gunhild'
+    'Gunn'
+    'Gunvor'
+    'Guro'
+    'Hanna'
+    'Hannah'
+    'Hanne'
+    'Hedda'
+    'Hege'
+    'Heidi'
+    'Helene'
+    'Helga'
+    'Helle'
+    'Henriette'
+    'Hermine'
+    'Hilde'
+    'Ida'
+    'Ina'
+    'Inga'
+    'Ingebjørg'
+    'Ingeborg'
+    'Inger'
+    'Ingrid'
+    'Ingunn'
+    'Ingvild'
+    'Irene'
+    'Isabella'
+    'Iselin'
+    'Jade'
+    'Jane'
+    'Janne'
+    'Jeanette'
+    'Jenny'
+    'Johanne'
+    'Jorun'
+    'Jorunn'
+    'Julia'
+    'Julie'
+    'June'
+    'Kaja'
+    'Kajsa'
+    'Karen'
+    'Kari'
+    'Karianne'
+    'Karin'
+    'Karina'
+    'Karoline'
+    'Kathrine'
+    'Katrine'
+    'Kim'
+    'Kirsten'
+    'Kirsti'
+    'Kjersti'
+    'Kristin'
+    'Kristina'
+    'Kristine'
+    'Laila'
+    'Leah'
+    'Lena'
+    'Lene'
+    'Lill'
+    'Lillian'
+    'Lilly'
+    'Lily'
+    'Lina'
+    'Linda'
+    'Line'
+    'Linn'
+    'Linnea'
+    'Lisa'
+    'Lisbeth'
+    'Lise'
+    'Liv'
+    'Live'
+    'Lorelai'
+    'Lucy'
+    'Magnhild'
+    'Magrat'
+    'Maja'
+    'Malene'
+    'Malin'
+    'Maren'
+    'Margit'
+    'Margrethe'
+    'Mari'
+    'Maria'
+    'Mariann'
+    'Marianne'
+    'Marie'
+    'Mariko'
+    'Marit'
+    'Marita'
+    'Marta'
+    'Marte'
+    'Marthe'
+    'Martine'
+    'Mary'
+    'Mathilde'
+    'May'
+    'Merete'
+    'Mia'
+    'Min'
+    'Mina'
+    'Miriam'
+    'Mona'
+    'Monica'
+    'Monika'
+    'Natasja'
+    'Nessa'
+    'Nina'
+    'Nora'
+    'Oda'
+    'Olaug'
+    'Olga'
+    'Oline'
+    'Olivia'
+    'Paulina'
+    'Pauline'
+    'Pernille'
+    'Petra'
+    'Pia'
+    'Ragna'
+    'Ragnhild'
+    'Randi'
+    'Regine'
+    'Reidun'
+    'Renate'
+    'Rigmor'
+    'Rikke'
+    'Rita'
+    'Riwa'
+    'Rosa'
+    'Ruth'
+    'Saga'
+    'Sandra'
+    'Sara'
+    'Sarah'
+    'Selma'
+    'Signe'
+    'Sigrid'
+    'Silje'
+    'Siri'
+    'Sissel'
+    'Siv'
+    'Sofia'
+    'Sofie'
+    'Solfrid'
+    'Solveig'
+    'Sonja'
+    'Sophie'
+    'Stine'
+    'Sunniva'
+    'Susanne'
+    'Süeda'
+    'Synne'
+    'Synnøve'
+    'Sølvi'
+    'Thea'
+    'Therese'
+    'Thora'
+    'Tina'
+    'Tiril'
+    'Tone'
+    'Tonje'
+    'Torhild'
+    'Toril'
+    'Torill'
+    'Torunn'
+    'Tove'
+    'Trine'
+    'Trude'
+    'Turid'
+    'Una'
+    'Unni'
+    'Valeria'
+    'Veronica'
+    'Victoria'
+    'Vigdis'
+    'Vilde'
+    'Vilja'
+    'Vilma'
+    'Wenche'
+    'Willow'
+    'Yuki'
+    'Zoe'
+    'Åse'
+    'Aase'
+    'Åshild'
+  )
+
+  Fornavn_M=(
+    'Abdinasir'
+    'Adrian'
+    'Ahmed'
+    'Aksel'
+    'Alexander'
+    'Alf'
+    'Alfred'
+    'Alv'
+    'Amund'
+    'Amunder'
+    'Anders'
+    'Andre'
+    'Andreas'
+    'Anton'
+    'Arne'
+    'Arthur'
+    'August'
+    'Awet'
+    'Axel'
+    'Benjamin'
+    'Benjaminn'
+    'Birk'
+    'Bjarne'
+    'Bjarte'
+    'Bjørn'
+    'Brumund'
+    'Børre'
+    'BÃ¥rd'
+    'Carl'
+    'Charles'
+    'Christoffer'
+    'Dag'
+    'Daniel'
+    'David'
+    'Dennis'
+    'Edvin'
+    'Edward'
+    'Egil'
+    'Eigil'
+    'Einar'
+    'Eivind'
+    'Elias'
+    'Emil'
+    'Erik'
+    'Ernst'
+    'Eskil'
+    'Espen'
+    'Even'
+    'Farzad'
+    'Federico'
+    'Felix'
+    'Filip'
+    'Finn'
+    'Frank'
+    'Fredrik'
+    'Frode'
+    'Gabriel'
+    'Gandalf'
+    'Gaus'
+    'Gaute'
+    'Geir'
+    'George'
+    'Gisle'
+    'Gudmund'
+    'Gunnar'
+    'Hall'
+    'Hallvard'
+    'Halvor'
+    'Hans'
+    'Harald'
+    'Helge'
+    'Henrik'
+    'Henry'
+    'HÃ¥kon'
+    'Haakon'
+    'HÃ¥rek'
+    'HÃ¥vard'
+    'Inge'
+    'Isak'
+    'Ivar'
+    'Iver'
+    'Jack'
+    'Jacob'
+    'Jahn'
+    'Jakob'
+    'James'
+    'Jan'
+    'Jens'
+    'Joakim'
+    'Johan'
+    'Johannes'
+    'John'
+    'Jon'
+    'Jonas'
+    'Jonathan'
+    'Julian'
+    'Jørgen'
+    'Jørn'
+    'Kark'
+    'Karl'
+    'Kennet'
+    'Kenneth'
+    'Kim'
+    'Kjartan'
+    'Kjell'
+    'Klemet'
+    'Knut'
+    'Kolbjørn'
+    'Kristian'
+    'Kristoffer'
+    'Lambert'
+    'Lars'
+    'Lasse'
+    'Leif'
+    'Leiv'
+    'Leon'
+    'Liam'
+    'Lucas'
+    'Ludvig'
+    'Ludvik'
+    'Mads'
+    'Magne'
+    'Magnus'
+    'Marcus'
+    'Marius'
+    'Martin'
+    'Mathias'
+    'Matias'
+    'Matt'
+    'Mattias'
+    'Michael'
+    'Mohammed'
+    'Morten'
+    'Muhammed'
+    'Nicolai'
+    'Nikolai'
+    'Nils'
+    'Noah'
+    'Odd'
+    'Oddmund'
+    'Oddvar'
+    'Odin'
+    'Ola'
+    'Ole'
+    'Oliver'
+    'Oscar'
+    'Oskar'
+    'Ozzy'
+    'Patrick'
+    'Paul'
+    'Peder'
+    'Per'
+    'Peter'
+    'Petter'
+    'PÃ¥l'
+    'Rand'
+    'Rasmus'
+    'Reidar'
+    'Rein'
+    'Reiulf'
+    'Richard'
+    'Roar'
+    'Robert'
+    'Robin'
+    'Rolf'
+    'Roms'
+    'Rune'
+    'Samim'
+    'Sander'
+    'Sebastian'
+    'Sigurd'
+    'Sigve'
+    'Simen'
+    'Simon'
+    'Sindre'
+    'Stein'
+    'Stian'
+    'Svein'
+    'Sven'
+    'Sverre'
+    'Terje'
+    'Theodor'
+    'Thomas'
+    'Thor'
+    'Tobias'
+    'Tomas'
+    'Tommy'
+    'Tonny'
+    'Tor'
+    'Torben'
+    'Torbjørn'
+    'Trent'
+    'Trond'
+    'Tryggve'
+    'Trygve'
+    'Ulf'
+    'Vagn'
+    'Valentin'
+    'Vegard'
+    'Vetle'
+    'Vidar'
+    'Viktor'
+    'Viljar'
+    'William'
+    'Xander'
+    'Yngvar'
+    'Yngve'
+    'Øystein'
+    'Øyvind'
+    'Åge'
+  )
+
+  Etternavn_A=(
+    'Abrahamsen'
+    'Ahmed'
+    'Ali'
+    'Alstad'
+    'Amundsen'
+    'Andersen'
+    'Andersson'
+    'Andreassen'
+    'Antonsen'
+    'Arnesen'
+    'Askeland'
+    'Aune'
+    'Bakke'
+    'Bakken'
+    'Balle'
+    'Barlund'
+    'Behrns'
+    'Berg'
+    'Bergersen'
+    'Berglund'
+    'Bergman'
+    'Bergström'
+    'Bjerke'
+    'Bjornstad'
+    'Bjørk'
+    'Blom'
+    'Borgen'
+    'Bratland'
+    'Bratt'
+    'Breivik'
+    'Brenden'
+    'Bru'
+    'Brun'
+    'Brynulfsen'
+    'Bråten'
+    'Braaten'
+    'Bråthen'
+    'Bugge'
+    'Bø'
+    'Bøe'
+    'Carlsen'
+    'Christensen'
+    'Christiansen'
+    'Cohen'
+    'Dahl'
+    'Dahlberg'
+    'Dal'
+    'Dalen'
+    'Danielsen'
+    'Davidsen'
+    'Dybvik'
+    'Eide'
+    'Eikeland'
+    'Eliassen'
+    'Ellingsen'
+    'Eng'
+    'Engen'
+    'Enger'
+    'Eriksen'
+    'Espeland'
+    'Fernandez'
+    'Fjeld'
+    'Fjeldet'
+    'Fjell'
+    'Flaten'
+    'Flood'
+    'Foss'
+    'Fossum'
+    'Fredheim'
+    'Fredriksen'
+    'Frøyland'
+    'Furulund'
+    'Gabrielsen'
+    'Garcia'
+    'Gjerde'
+    'Gjertsen'
+    'Gonzalez'
+    'Gran'
+    'Grindheim'
+    'Gulbrandsen'
+    'Gundersen'
+    'Gustavsen'
+    'Hagen'
+    'Halvorsen'
+    'Hammer'
+    'Hansen'
+    'Haraldseid'
+    'Haug'
+    'Haugen'
+    'Haugland'
+    'Haugsrud'
+    'Hegge'
+    'Hellevik'
+    'Henriksen'
+    'Hermansen'
+    'Hjelle'
+    'Hol'
+    'Holm'
+    'Holmberg'
+    'Holter'
+    'Hov'
+    'Hovland'
+    'Husemoen'
+    'Høyland'
+    'Haaland'
+    'Ivanov'
+    'Iversen'
+    'Jacobsen'
+    'Jakobsen'
+    'Jamtli'
+    'Jensen'
+    'Johannessen'
+    'Johansen'
+    'Johansson'
+    'Johnsen'
+    'Jørstad'
+    'Karlsen'
+    'Karlsson'
+    'Kim'
+    'Kjeldsen'
+    'Kjellevold'
+    'Kjos'
+    'Kleppe'
+    'Kleven'
+    'Knudsen'
+    'Knutsen'
+    'Kolstad'
+    'Korsvold'
+    'Kristensen'
+    'Kristiansen'
+    'Krogstad'
+    'Kvam'
+    'Langseth'
+    'Larsen'
+    'Lee'
+    'Lie'
+    'Lien'
+    'Lindberg'
+    'Lindholm'
+    'Lopez'
+    'Lund'
+    'Lundberg'
+    'Lunde'
+    'Lundeberg'
+    'Løkken'
+    'Madsen'
+    'Martinez'
+    'Mo'
+    'Moe'
+    'Moen'
+    'Mohammed'
+    'Murstad'
+    'Myhre'
+    'Nes'
+    'Nguyen'
+    'Nilsen'
+    'Nordheim'
+    'Nygård'
+    'Nystrøm'
+    'Olofsson'
+    'Olsen'
+    'Patel'
+    'Pedersen'
+    'Rasmussen'
+    'Reinsborg'
+    'Rodriguez'
+    'Roland'
+    'Rønning'
+    'Rønningen'
+    'Sand'
+    'Sandvik'
+    'Singh'
+    'Skog'
+    'Solberg'
+    'Stene'
+    'Stensrud'
+    'Strand'
+    'Svensson'
+    'Sveum'
+    'Sæter'
+    'Sørensen'
+    'Sørheim'
+    'Tangen'
+    'Trohaug'
+    'Tronæs'
+    'Tveit'
+    'Vang'
+    'Vik'
+    'Viken'
+    'Wang'
+    'Yilmaz'
+    'Ødegård'
+    'Ødegaard'
+    'Aas'
+    'Aasen'
+    'Åsheim'
+    'Aasland'
+  )
+
+  # Finner størrelsen på arrayene
+  Fornavn_F_N=${#Fornavn_F[@]}
+  Fornavn_M_N=${#Fornavn_M[@]}
+  Etternavn_A_N=${#Etternavn_A[@]}
+
+  # Finn ut om vi plukke ut en kvinnelig eller mannlig navn
+  Kjonn=$((RANDOM % 2))
+
+  # Finn ut om vi vil ha dobbelt fornavn, 1/7 får det
+  Dobbel_Fornavn=$((RANDOM % 7))
+
+  # Hvis dobbelt fornavn så skal 1/10 av dem ha bindestrek
+  if [ ${Dobbel_Fornavn} == 0 ]; then
+    if [ $((RANDOM % 10)) == 0 ]; then
+      Fornavn_Skilletegn="-"
+    else
+      Fornavn_Skilletegn=" "
+    fi
+  fi
+
+  # Finn ut om vi vil ha dobbelt etternavn, 1/10 får det
+  Dobbel_Etternavn=$((RANDOM % 10))
+
+  # Hvis dobbelt etternavn så skal 1/8 av dem ha bindestrek
+  if [ ${Dobbel_Etternavn} == 0 ]; then
+    if [ $((RANDOM % 8)) == 0 ]; then
+      Etternavn_Skilletegn="-"
+    else
+      Etternavn_Skilletegn=" "
+    fi
+  fi
+
+  if [ ${Kjonn} == 0 ]; then
+    Fornavn_F_I=$((RANDOM % Fornavn_F_N))
+    Fornavn=${Fornavn_F[Fornavn_F_I]}
+    if [ ${Dobbel_Fornavn} == 0 ]; then
+      Fornavn_F=("${Fornavn_F[@]/${Fornavn}}")
+      ((Fornavn_F_N--))
+      Fornavn_F_I=$((RANDOM % Fornavn_F_N))
+      Fornavn="${Fornavn}${Fornavn_Skilletegn}${Fornavn_F[Fornavn_F_I]}"
+    fi
+  else
+    Fornavn_M_I=$((RANDOM % Fornavn_M_N))
+    Fornavn=${Fornavn_M[Fornavn_M_I]}
+    if [ ${Dobbel_Fornavn} == 0 ]; then
+      Fornavn_M=("${Fornavn_M[@]/${Fornavn}}")
+      ((Fornavn_M_N--))
+      Fornavn_M_I=$((RANDOM % Fornavn_M_N))
+      Fornavn="${Fornavn}${Fornavn_Skilletegn}${Fornavn_M[Fornavn_M_I]}"
+    fi
+  fi
+
+  Etternavn_A_I=$((RANDOM % Etternavn_A_N))
+  Etternavn=${Etternavn_A[Etternavn_A_I]}
+  if [ ${Dobbel_Etternavn} == 0 ]; then
+    Etternavn_A=("${Etternavn_A[@]/${Etternavn}}")
+    ((Fornavn_A_N--))
+    Etternavn_A_I=$((RANDOM % Etternavn_A_N))
+    if [ "$Etternavn_Skilletegn" == "-" ]; then
+      Etternavn="${Etternavn}${Etternavn_Skilletegn}${Etternavn_A[Etternavn_A_I]}"
+    else
+      Fornavn="${Fornavn}${Etternavn_Skilletegn}${Etternavn_A[Etternavn_A_I]}"
+    fi
+  fi
+
+  echo "${Fornavn},${Etternavn}"
+  ((Antall--))
+done