In juni 2017 gaf de California Olive Association nogal angstaanjagende namen1 aan de groottes van olijven:

naam aantal olijven per pond
Standard 120–135
Medium 105–120
Large 90–105
Extra Large 75–90
Mammoth 65–75
Colossal 55–65
Giant 45–55

In de loop der jaren hebben ze ook Jumbo, Supercolossal en Special Supercolossal aan de lijst met namen toegevoegd.

size matters
Size matters.

Het duurde tot de jaren '70 vooraleer de regering stappen zette om verdere wildgroei een halt toe te roepen2:

The Department of Agriculture feels that most people would not be able to figure out which are the larger olives, except at the range of smaller sizes, whose names are the more straightforward.

Opgave

JPEG3 is een bestandsindeling die gebruikt wordt voor het opslaan van rechthoekige rasterafbeeldingen in digitale vorm. De bestandsinformatie die wordt uitgeschreven door het Unix commando file bevat voor een JPEG-bestand onder andere de dimensie van de afbeelding (500x375 in onderstaand voorbeeld):

$ file 0.jpg
0.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 500x375, frames 3

Schrijf een bash shell script jpegdim waaraan de padnaam van een directory moet doorgegeven worden. Het shell script moet alle JPEG-bestanden onder de gegeven directory (dus inclusief alle onderliggende subdirectories) hernoemen. Elk JPEG-bestand image.ext (waarbij er geen punt voorkomt in de extensie ext) moet hernoemd worden naar image.dim.ext (waarbij dim de dimensie van de afbeelding is zoals die wordt weergegeven door het Unix commando file). Het shell script moet ervan uitgaan dat alle JPEG-bestanden een extensie .jpg of .jpeg hebben, waarbij geen onderscheid mag gemaakt worden tussen hoofdletters en kleine letters.

Voorbeeld

In onderstaande voorbeeldsessie gaan we ervan uit dat de directory reception (reception.zip4) zich in de huidige directory bevindt.

$ tree reception/
reception/
├── champagne
│   ├── 0.jpg
│   ├── 1.jpeg
│   ├── 2.jpg
│   ├── 3.jpeg
│   ├── 4.JPG
│   ├── 5.jpg
│   ├── 6.jpg
│   ├── 7.jpg
│   ├── 8.JPeg
│   └── 9.jpeg
└── olives
    ├── 0.jpg
    ├── 1.jpeg
    ├── 2.jpg
    ├── 3.jpeg
    ├── 4.JPG
    ├── 5.jpg
    ├── 6.jpg
    ├── 7.jpg
    ├── 8.JPeg
    └── collection.jpeg

2 directories, 20 files
$ jpegdim reception/
$ tree reception/
reception/
├── champagne
│   ├── 0.224x225.jpg
│   ├── 1.225x225.jpeg
│   ├── 2.252x200.jpg
│   ├── 3.275x183.jpeg
│   ├── 4.216x233.JPG
│   ├── 5.275x183.jpg
│   ├── 6.225x225.jpg
│   ├── 7.247x204.jpg
│   ├── 8.219x230.JPeg
│   └── 9.225x225.jpeg
└── olives
    ├── 0.275x183.jpg
    ├── 1.225x225.jpeg
    ├── 2.183x275.jpg
    ├── 3.259x194.jpeg
    ├── 4.225x225.JPG
    ├── 5.259x194.jpg
    ├── 6.275x183.jpg
    ├── 7.275x183.jpg
    ├── 8.300x168.JPeg
    └── collection.275x183.jpeg

2 directories, 20 files
$

Alle directories die gebruikt worden voor het testen van de ingezonden oplossingen zijn gebundeld in test.zip5.

Epiloog

Nu we het er toch over hebben — ook champagneflessen hebben nogal indrukwekkende namen6:

naam inhoud (liter)
Quart/Piccolo 0,20
Demi 0,375
Bouteille 0,75
Magnum 1,5
Jéroboam 3,00
Réhoboam 4,50
Méthusalem 6,00
Salmanazar 9,00
Balthazar 12,00
Nebukadnezar 15,00
Melchior 18,00
Souverain 26,00
Melchizedek 30,00