Het tekstbestand municipalities.txt1 bevat informatie over alle gemeentes in het Vlaams gewest. Elke regel bevat de volgende gegevens over één bepaalde gemeente: $$i$$) naam, $$ii$$) stad of gemeente, $$iii$$) provincie, $$iv$$) oppervlakte in $$km^2$$ , $$v$$) aantal inwoners en $$vi$$) lijst van deelmunicipalities. De verschillende informatievelden worden van elkaar gescheiden door een dubbelpunt (:). De hoofding van het tekstbestand bestaat daarnaast uit een aantal commentaarregels die beginnen met een hekje (#).

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 municipalities.i.txt, die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Zorg er voor dat alle velden gescheiden worden door een puntkomma (;), en dat alle spaties vooraan en achteraan elk veld verwijderd worden. Zorg er ook voor dat de tekst 'gem.' vervangen wordt door de tekst 'gemeente'. Zo moet bijvoorbeeld

    Beringen:stad:Limburg:78,30:42758:Beringen:Beverlo: Koersel:Paal
    Brasschaat : gem.:Antwerpen:38,49:36949:Brasschaat
            

    omgezet worden naar (municipalities.1.txt2)

    Beringen;stad;Limburg;78,30;42758;Beringen;Beverlo;Koersel;Paal
    Brasschaat;gemeente;Antwerpen;38,49;36949;Brasschaat
            
  2. Zorg er voor dat de deelgemeentes worden opgelijst met een komma en een spatie als scheiding, in plaats van als verschillende velden. Toegepast op het vorige voorbeeld wordt dit (municipalities.2.txt3)

    Beringen;stad;Limburg;78,30;42758;Beringen, Beverlo, Koersel, Paal
    Brasschaat;gemeente;Antwerpen;38,49;36949;Brasschaat
            
  3. Vervang bij gemeentes met een oppervlakte groter of gelijk aan 92 $$km^2$$ de aanduiding 'gemeente' door 'grote gemeente' en bij steden met een oppervlakte kleiner of gelijk aan 38 $$km^2$$ de aanduiding 'stad' door 'kleine stad'. Toegepast op het vorige voorbeeld wordt dit (municipalities.3.txt4)

    Mol;grote gemeente;Antwerpen;114,26;34114;Mol
    Mesen;kleine stad;West-Vlaanderen;3,58;950;Mesen
    Beringen;stad;Limburg;78,30;42758;Beringen, Beverlo, Koersel, Paal
    Brasschaat;gemeente;Antwerpen;38,49;36949;Brasschaat
            
  4. Wissel het veld gemeente/stad van plaats met het veld provincie. Laat het veld met de oppervlakte van de gemeente weg. Toegepast op het vorige voorbeeld wordt dit (municipalities.4.txt5)

    Mol;Antwerpen;grote gemeente;34114;Mol
    Mesen;West-Vlaanderen;kleine stad;950;Mesen
    Beringen;Limburg;stad;42758;Beringen, Beverlo, Koersel, Paal
    Brasschaat;Antwerpen;gemeente;36949;Brasschaat
            
  5. Voeg na de naam van de gemeente een extra veld toe dat de postcode van de gemeente bevat. Gebruik hiervoor het join commando en het bestand postalcodes.txt6. Zorg er ook voor dat de gemeentes gesorteerd worden op naam. Toegepast op het vorige voorbeeld wordt dit (municipalities.5.txt7)

    Beringen;3580;Limburg;stad;42758;Beringen, Beverlo, Koersel, Paal
    Brasschaat;2930;Antwerpen;gemeente;36949;Brasschaat
    Mesen;8957;West-Vlaanderen;kleine stad;950;Mesen
    Mol;2400;Antwerpen;grote gemeente;34114;Mol
            

Richtlijnen bij het indienen

Volg aandachtig onderstaande richtlijnen bij het indienen van je oplossing: