Het tekstbestand cyclones.txt1 bevat een lijst van de natste tropische stormen per land, verzameld in Wikipedia op basis van een aantal verschillende bronnen. Elke regel bevat gegevens over één enkele storm zoals aangegeven in onderstaand formaat, waarbij de velden worden gescheiden door één enkel dubbelpunt (:).

<land>:<regenval (mm)>:<regenval (inches)>:<naam>:<meetstation>
    

Het bestand bevat bovendien bovenaan nog enkele commentaarregels die beginnen met een hekje (#). Omdat deze gegevens rechtstreeks uit Wikipedia komen, willen we het gebruikte bestandsformaat nog enigszins aanpassen.

Opgave

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 uit zo weinig mogelijk tekens bestaat. De commando's mogen geen programmeerbare filters (bv. awk) gebruiken. Alle opdrachten moeten na elkaar uitgevoerd worden. De opdrachten mogen de eerste regel (hoofding) niet wijzigen, tenzij dit expliciet anders vermeld staat. Ter controle kan je gebruikmaken van de meegeleverde bestanden cyclones.i.txt, die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Zorg ervoor dat alle spaties vooraan en achteraan elk veld verwijderd worden. (cyclones.1.txt2)

  2. Sommige velden bevatten overtollige informatie die ook moet verwijderd worden. Verwijder de tekst " mm" uit het derde veld en de tekst " inches" uit het vierde veld indien die daar mocht voorkomen. Bovendien bevatten de velden mogelijks ook literatuurverwijzingen onder de vorm van een natuurlijk getal tussen vierkante haakjes. Deze literatuurverwijzing moeten ook verwijderd worden. Zo wordt bijvoorbeeld

    Mozambique:1:502 mm:19.76 inches:Eline 2000:Levubu[163]
            

    omgezet naar (cyclones.2.txt3)

    Mozambique:1:502:19.76:Eline 2000:Levubu
            
  3. Het eerste veld bevat voor de naam van het land soms ook nog de naam van een plaats binnen dat land (meestal een eiland), waarbij beide namen van elkaar worden gescheiden door een komma gevolgd door een spatie. Zorg ervoor dat in het eerste veld enkel de naam van het land wordt behouden. Zo moet bijvoorbeeld Sint Maarten, Netherland Antilles worden omgezet naar Netherland Antilles. (cyclones.3.txt4)

  4. Reorganiseer het bestand zodat de regels geordend zijn op land (alfabetisch) en daarna op hoeveelheid neerslag (in mm) die de storm met zich mee heeft gebracht (waarbij stormen met de hoogste regenval bovenaan komen te staan). Zorg ervoor dat de regels na herorganisatie dezelfde vorm behouden. Aangezien dit het veld met het rangnummer overbodig maakt, moet ook het tweede veld integraal verwijderd worden. (cyclones.4.txt5)

  5. De naam van de storm bevat meestal een jaartal dat bestaat uit vier cijfers. Extraheer het jaartal uit de naam van de storm en voeg het als een nieuw veld toe achter de naam van storm. Zorg ervoor dat aan regels die geen jaartal in de naam van de storm bevatten ook een nieuw leeg veld wordt toegevoegd op de corresponderende plaats. Zo wordt bijvoorbeeld

    Australia:927:36.50:April 1898 cyclone:Whim Creek
    Belize:249.2:9.81:Chantal 01:Towerhill
            

    omgezet naar (cyclones.5.txt6)

    Australia:927:36.50:April 1898 cyclone:1898:Whim Creek
    Belize:249.2:9.81:Chantal 01::Towerhill
            
  6. Markeer alle stormen die 1000 mm of meer neerslag produceerden door op het einde van de corresponderende regel de tekst " [*]" toe te voegen. Zo wordt bijvoorbeeld

    Australia:1411:55.55:Mackay Cyclone 1918:1918:Mackay
            

    omgezet naar (cyclones.6.txt7)

    Australia:1411:55.55:Mackay Cyclone 1918:1918:Mackay [*]
            

Richtlijnen bij het indienen

Volg aandachtig onderstaande richtlijnen bij het indienen van je oplossing: