Opgave

In het tekstbestand weights.txt1 hebben de regels de volgende vorm:

<dier>+<klasse>+<min gew jong>+<max gew jong>+<min gew volw>+<max gew volw>
    

Elke regel bevat informatie over het gewicht van een dier, waarbij een plusteken (+) wordt gebruikt als veldscheidingsteken. Dit betekent dus dat er geen plustekens meer voorkomen in de inhoud van de velden zelf. Gewichten hebben minimum 2 en maximum 3 cijfers na de komma. De gewichtsvelden hoeven niet noodzakelijk een waarde te hebben. Verder bevat het bestand ook nog commentaarregels die beginnen met een hekje (#). Gevraagd wordt om — gebruik makend 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 ervoor dat elk van deze commando's bestaat uit zo weinig mogelijk tekens. Alle opdrachten moeten na elkaar uitgevoerd worden, waarbij de regel met hoofding steeds ongewijzigd moet blijven. Ter controle kan je gebruik maken van de meegeleverde bestanden weights.$$i$$.txt (1 ≤ $$i$$ ≤ 5), die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Zorg dat alle gewichten drie cijfers na de komma hebben. Zo wordt bijvoorbeeld 0.20 aangevuld tot 0.200. Ontbrekende gewichten blijven onaangeroerd. (weights.1.txt2)

  2. Markeer alle lijnen waarvoor het minimum gewicht van een jong niet gekend is. Doe dit door op het einde van de lijn de tekst //MISSING!// toe te voegen. Toegepast op het vorige voorbeeld wordt dit (weights.2.txt3)

  3. Verander de volgorde van de gewichten van

    <min gew jong>+<max gew jong>+<min gew volw>+<max gew volw>
            

    naar (weights.3.txt4)

    <min gew jong>+<min gew volw>+<max gew jong>+<max gew volw>
            
  4. Reorganiseer het bestand op de volgende manier (na de aanpassing uit puntje 2 bevat het veld <opmerking> de tekst //MISSING!// indien het niet leeg is):

    <dier>+<klasse>+<min gew jong>+<max gew jong>+<min gew volw>+<max gew volw>+<opmerking>
            

    wordt omgezet naar (weights.4.txt5)

    <dier>+MIN+<min gewicht jong>+<min gewicht volw>
    <dier>+MAX+<max gewicht jong>+<max gewicht volw>
            
  5. Orden de regels volgens jonge gewichten, je hoeft geen rekening te houden met minimum of maximum. De onderstaande regels staan bijvoorbeeld juist gesorteerd: (weights.5.txt6)

    dier_1+MIN+0.100+0.500
    dier_1+MAX+0.200+0.800
    dier_2+MIN+0.300+0.400
    dier_2+MAX+0.350+0.500
            

    Zorg ervoor dat de regels na reorganisatie dezelfde vorm behouden. Het kan zijn dat je hiervoor meer dan één commando nodig hebt.

Richtlijnen bij het indienen

Volg aandachtig onderstaande richtlijnen bij het indienen van je oplossing: