Tijdens zijn opzoekingswerk voor The American Language1 verzamelde H.L. Mencken
in de jaren dertig en veertig heel wat ongebruikelijke meisjesnamen uit
gedrukte bronnen, voornamelijk uit het Zuidwesten van de Verenigde Staten.
Een kleine greep daaruit:
Apple, Armadilla, Arthurene, Australia, Beatfred, Begonia, Birdeen, Cementa, Chlorine, Covadonga, Coweene, Elicious, Faucette, Garguerite, Gazelle, Glary Ann, Glenoulia, Halloween, Hygiene, Hughzetta, Kiwanis, Larceny, Leafy Ella, Locust, O'Dwaine, Pencilla, Pleasantina, Scharlott, Townzella, Ukdene, Vasoline, Wroberta, Wyneese, Zelvateen
Over de vreemdere exemplaren schreef Mencken:
Hoewel je het voor sommige van die namen nauwelijks kunt geloven, zijn ze allemaal authentiek. Het is alsof de ambitieuze moeder van een pasgeboren schatje de lettergrepen van alle bestaande meisjesnamen op papiertjes heeft geschreven, daar nog wat willekeurige lettergrepen uit de terminologie van de kunsten en de wetenschappen heeft aan toegevoegd, alles in een slazwierder heeft gegooid, om dan met een willekeurige greep uit die hutsepot een nieuwe naam samen te stellen.
Het United States Census Bureau2 is een agentschap van het Ministerie van Economische Zaken dat instaat voor de volkstellingen in de Verenigde Staten. In de digitale archieven van dit agentschap hebben we een directory teruggevonden met daarin een kluwen van bestanden. Die directory en de onderliggende subdirectories bevatten onder andere bestanden met meisjesnamen. Op elke regel staat één meisjesnaam:
Larissa Genevieve Amirah Emely Halloween Payten Ryleigh Reyna Halloween Madelyn Mikaela Elaine Rosa Ximena Halloween
We kunnen deze bestanden herkennen aan hun naam. Die heeft immers de vorm xx.yyyy.txt, waarbij xx de twee-hoofdletter afkorting is van een Amerikaanse staat (bijvoorbeeld AL voor Alabama of NY voor New York) en yyyy een jaartal is dat uit vier cijfers bestaat. Een dergelijk bestand bevat de namen van alle meisjes die dat jaar in die staat geboren zijn. Dezelfde naam kan meerdere keren in hetzelfde bestand voorkomen, want er kunnen in hetzelfde jaar meerdere meisjes met dezelfde naam in dezelfde staat geboren worden. Zo is bijvoorbeeld NY.2019.txt een bestand met alle meisjesnamen die in 2019 in de staat New York geboren zijn.
Er zit echter een kleine addertje onder het gras. Soms zijn er ook bestanden met een naam die voldoet aan de bovenstaande vorm, maar die geen meisjesnamen bevatten (al lijkt het er soms wel op als je de inhoud van de bestanden zou bekijken). We hebben de herkomst van deze bestanden niet kunnen achterhalen, maar gelukkig zijn ze makkelijk te herkennen aan het feit dat ze minder dan 100 bytes groot zijn.
We hebben twee shell variabelen ingesteld:
NAME: een meisjesnaam
STATE: de twee-hoofdletter afkorting van een Amerikaanse staat
Geef een Unix commando dat telt hoeveel meisjes met naam NAME er geboren zijn in staat STATE op basis van alle bestanden met meisjenamen in de huidige directory en alle onderliggende directories. Dit aantal meisjes moet door het commando uitgeschreven worden naar standaard uitvoer (stdout).
Een shell variable3 is een naam die verwijst naar een string (tekst). Als je in een Unix commando de naam van de variabele laat voorafgaan door een dollarteken ($) en optioneel tussen accolades zet ({}), dan zal de variabele (het dollarteken, de naam en de optionele accolades) door de shell vervangen worden door de geassocieerde string voordat het commando wordt uitgevoerd.
$ NAME="Linus"
$ echo "Hallo $NAME!"
Hallo Linus!
$ echo "Hallo ${NAME}!"
Hallo Linus!
Let er wel op dat de shell deze variable substitution4 enkel uitvoert als er geen escaping5 wordt toegepast op het dollarteken. Het voorgaande voorbeeld toont aan dat de shell wel nog variable substitution uitvoert als het dollarteken tussen dubbele aanhalingstekens staat. Dat is echter niet het geval als het dollarteken tussen enkele aanhalingstekens staat of wordt voorafgegaan door een backslash (\).
$ NAME="Linus"
$ echo 'Hallo $NAME!'
Hallo $NAME!
$ echo Hallo \$NAME!
Hallo $NAME!
In onderstaande interactieve bash sessie gaan we ervan uit dat dit ZIP-bestand6 uitgepakt werd in de huidige directory.
$ cd test1
$ NAME="Halloween" STATE="NY"
$ …
2
$ cd ../test2
$ NAME="Chlorine" STATE="LA"
$ …
10
Het gevraagde commando moet op de plaats van de drie puntjes (…) komen. Het ZIP-bestand7 bevat alle directories die ook gebruikt worden om het door jou ingediende commando te testen.
Uiteraard vond H.L. Mencken niet alleen maar bizarre meisjesnamen. Dit is een greep uit zijn bonte verzameling jongensnamen:
Allmouth, Anvil, Arson, Centurlius, Cho-Wella, Clarmond, Cluke, Comma, Crellon, Cyclone, Doke, Elesten, Elgne, Elvcyd, Felmet, Florns, Habert, Harce, Human, Jat, Kark, Kleo Murl, Koith, Lig, Loarn, Mord, Murt, Quannah, Rephord, Terbert, Thrantham, Torl, Valourd, Virgle, Yick, Zelmer, Zurr
Hij vermeldde ook nog deze curiositeit:
Een generatie of twee geleden was er in Connecticut een politicus met de familienaam Bill en als voornamen Kansas Nebraska8. Hij had broers die Lecompton Constitution9 en Emancipation Proclamation10 heetten en zussen die Louisiana Purchase11 en Missouri Compromise12 heetten.