Canonical Ltd1 brengt halfjaarlijks een nieuwe release uit van het besturingssysteem Ubuntu2, met het jaar en de maand van de release als versienummer. De eerste Ubuntu-release was bijvoorbeeld Ubuntu 4.10 en werd uitgebracht op 20 oktober 2004. Canonical plant haar Ubuntu-releases ongeveer een maand na GNOME3-releases, die op hun beurt ongeveer een maand na releases van X.org4 uitgebracht worden. Als gevolg daarvan heeft elke release van Ubuntu een nieuwe versie van GNOME en X.

Ubuntu 19.10 Eoan Ermine
Ubuntu 19.10 Eoan Ermine.

Elke vierde release — uitgebracht in het tweede kwartaal van de even jaren — wordt aangeduid met de term LTS (long term support) als teken dat die voor lange tijd zal ondersteund worden. De desktopversie van LTS-releases tot en met 10.04 werden gedurende drie jaar ondersteund, en serverversies gedurende vijf jaar. Vanaf LTS-release 12.04 worden beide versies gratis ondersteund gedurende vijf jaar. Via de betaalde ESM-optie kan ondersteuning nog langer verlengd worden, tot een totaal van tien jaar voor release 18.04. Niet-LTS-releases worden slechts 9 maanden ondersteund (vóór 13.04 was dat nog 18 maanden).

Ubuntu-releases krijgen ook een codenaam die bestaat uit een adjectief en de naam van een dier. Beide componenten hebben steeds dezelfde beginletter, waardoor codenamen allitereren zoals in "Dapper Drake". Met uitzondering van de eerste twee releases staan codenamen ook in alfabetische volgorde, waardoor snel kan bepaald worden welke versie nieuwer is. Omdat het einde van het alfabet bereikt was, begint de codenaam voor Ubuntu 17.10 terug met de letter A. Soms worden namen gekozen zodat het uiterlijk of de gewoonten van het dier een nieuwe functionaliteit weerspiegelt, bijvoorbeeld het feit dat eucalyptus de favoriete maaltijd is van de koala's. Af en toe wordt naar een release verwezen door enkel het adjectief uit de codenaam te gebruiken, bijvoorbeeld "Feisty".

Opgave

Het tekstbestand ubuntu.txt5 bevat een overzicht van alle gepubliceerde en geplande releases van het besturingssysteem Ubuntu. Elke regel van het bestand bevat informatie over één release, bestaande uit de volgende zes velden die van elkaar worden gescheiden door tabs: i) versie (Version), ii) codenaam (Code name), iii) releasedatum (Release date), iv) uiterste datum voor ondersteuning van desktopversie (Desktop support until), v) uiterste datum voor ondersteuning van serverversie (Server support until), en vi) initiële kernelversie (Initial kernel version). Je mag ervan uitgaan dat de velden zelf geen tabs en puntkomma's (;) bevatten.

Gevraagd wordt om — gebruikmakend van de teksteditors vi of vim — een reeks commando's op te stellen die achtereenvolgens de volgende opdrachten uitvoeren. Probeer voor elke opdracht zo weinig mogelijk commando's te gebruiken en zorg er voor dat elk van deze commando's bestaat uit zo weinig mogelijk tekens. Alle opdrachten moeten na elkaar uitgevoerd worden. Ter controle kan je gebruikmaken van de meegeleverde bestanden ubuntu.i.txt (ZIP6), die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Vervang de tabs als veldscheidingsteken door puntkomma's (;). Zo moet

    Version Code name       Release date    Desktop support until   Server support until    Initial kernel version
    4.10    Warty Warthog   2004-10-20      2006-04-30      2.6.8
    5.04    Hoary Hedgehog  2005-04-08      2006-10-31      2.6.10
    5.10    Breezy Badger   2005-10-13      2007-04-13      2.6.12
    6.06 LTS        Dapper Drake    2006-06-01      2009-07-14      2011-06-01      2.6.15
    6.10    Edgy Eft        2006-10-26      2008-04-25      2.6.17
    …
    

    bijvoorbeeld omgezet worden naar (ubuntu.1.txt7)

    Version;Code name;Release date;Desktop support until;Server support until;Initial kernel version
    4.10;Warty Warthog;2004-10-20;2006-04-30;2.6.8
    5.04;Hoary Hedgehog;2005-04-08;2006-10-31;2.6.10
    5.10;Breezy Badger;2005-10-13;2007-04-13;2.6.12
    6.06 LTS;Dapper Drake;2006-06-01;2009-07-14;2011-06-01;2.6.15
    6.10;Edgy Eft;2006-10-26;2008-04-25;2.6.17
    …
    
  2. Maak van de eerste regel een commentaarregel door vooraan een hekje tot te voegen. Alle opdrachten die hierna komen mogen deze commentaarregel niet meer wijzigen. We krijgen dan (ubuntu.2.txt8)

    #Version;Code name;Release date;Desktop support until;Server support until;Initial kernel version
    4.10;Warty Warthog;2004-10-20;2006-04-30;2.6.8
    5.04;Hoary Hedgehog;2005-04-08;2006-10-31;2.6.10
    5.10;Breezy Badger;2005-10-13;2007-04-13;2.6.12
    6.06 LTS;Dapper Drake;2006-06-01;2009-07-14;2011-06-01;2.6.15
    6.10;Edgy Eft;2006-10-26;2008-04-25;2.6.17
    …
    
  3. Verwijder alle literatuurreferenties uit de informatievelden. Een literatuurreferentie wordt weergegeven als een natuurlijk getal dat tussen vierkante haakjes staat. We krijgen dan (ubuntu.3.txt9)

    #Version;Code name;Release date;Desktop support until;Server support until;Initial kernel version
    4.10;Warty Warthog;2004-10-20;2006-04-30;2.6.8
    5.04;Hoary Hedgehog;2005-04-08;2006-10-31;2.6.10
    5.10;Breezy Badger;2005-10-13;2007-04-13;2.6.12
    6.06 LTS;Dapper Drake;2006-06-01;2009-07-14;2011-06-01;2.6.15
    6.10;Edgy Eft;2006-10-26;2008-04-25;2.6.17
    …
    
  4. Vorm alle datums met formaat YYYY-MM-DD om naar het formaat DD/MM/YYYY, en dit in alle informatievelden. We krijgen dan (ubuntu.4.txt10)

    #Version;Code name;Release date;Desktop support until;Server support until;Initial kernel version
    4.10;Warty Warthog;20/10/2004;30/04/2006;2.6.8
    5.04;Hoary Hedgehog;08/04/2005;31/10/2006;2.6.10
    5.10;Breezy Badger;13/10/2005;13/04/2007;2.6.12
    6.06 LTS;Dapper Drake;01/06/2006;14/07/2009;01/06/2011;2.6.15
    6.10;Edgy Eft;26/10/2006;25/04/2008;2.6.17
    …
    
  5. Wissel de twee componenten om in de codenaam van alle LTS-releases. We krijgen dan (ubuntu.5.txt11)

    #Version;Code name;Release date;Desktop support until;Server support until;Initial kernel version
    4.10;Warty Warthog;20/10/2004;30/04/2006;2.6.8
    5.04;Hoary Hedgehog;08/04/2005;31/10/2006;2.6.10
    5.10;Breezy Badger;13/10/2005;13/04/2007;2.6.12
    6.06 LTS;Drake Dapper;01/06/2006;14/07/2009;01/06/2011;2.6.15
    6.10;Edgy Eft;26/10/2006;25/04/2008;2.6.17
    …
    
  6. Door een foutje staat er in het tekstbestand maar één uiterste datum voor ondersteuning, als die datum dezelfde is voor zowel de desktopversie als de serverversie. Corrigeer deze fout door alle regels die maar vijf informatievelden hebben ook een zesde informatieveld te geven, door het vierde informatieveld te verdubbelen. We krijgen dan (ubuntu.6.txt12)

    #Version;Code name;Release date;Desktop support until;Server support until;Initial kernel version
    4.10;Warty Warthog;20/10/2004;30/04/2006;30/04/2006;2.6.8
    5.04;Hoary Hedgehog;08/04/2005;31/10/2006;31/10/2006;2.6.10
    5.10;Breezy Badger;13/10/2005;13/04/2007;13/04/2007;2.6.12
    6.06 LTS;Drake Dapper;01/06/2006;14/07/2009;01/06/2011;2.6.15
    6.10;Edgy Eft;26/10/2006;25/04/2008;25/04/2008;2.6.17
    …