Opgave

Het tekstbestand film.txt1 bevat de IMDB-rating van een aantal films. Elke regel bevat de volgende informatie over een film: $$i$$) distributie van toegekende punten, $$ii$$) aantal uitgebrachte stemmen op de film, $$iii$$) berekende score en $$iv$$) titel gevolgd door jaar waarin film werd uitgebracht tussen ronde haakjes. De score is een getal uit het interval [0, 10[ dat steeds met één cijfer na de komma wordt weergegeven. De verschillende informatievelden worden van elkaar gescheiden door één of meerdere spaties, waarbij het laatste veld zelf ook spaties bevat. Het bestand bevat bovendien ook nog een hoofding waarvan alle regels 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 film.$$i$$.txt (1 ≤ $$i$$ ≤ 6), die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Zorg er voor dat de vier velden gescheiden worden door een puntkomma (;), waarbij ook alle spaties vooraan en achteraan elk veld verwijderd worden. Zo moet

     0000000125 540497 9.2 THE SHAWSHANK REDEMPTION (1994)
      0000000123 275216 8.7 THE USUAL SUSPECTS (1995)
            

    bijvoorbeeld omgezet worden naar (film.1.txt2)

    0000000125;540497;9.2;THE SHAWSHANK REDEMPTION (1994)
    0000000123;275216;8.7;THE USUAL SUSPECTS (1995)
            
  2. Enkele regels komen meerdere keren in het bestand voor. Zorg er voor dat deze regels ontdubbeld worden. Sorteer de films ook volgens score van hoog naar laag. Als twee films een gelijke score hebben, dan moet de film met het meest aantal stemmen eerst komen. (film.2.txt3)

  3. Verander de volgorde van de informatievelden. Plaats de naam van de film vooraan, gevolgd door de score, het aantal stemmen en de distributie van de punten. Plaats dit laatste veld tussen ronde haakjes. Toegepast op het vorige voorbeeld wordt dit (film.3.txt4)

    THE SHAWSHANK REDEMPTION (1994);9.2;540497;(0000000125)
    THE USUAL SUSPECTS (1995);8.7;275216;(0000000123)
            
  4. Plaats het jaartal van de film in een eigen veld. Toegepast op het vorige voorbeeld wordt dit (film.4.txt5)

    THE SHAWSHANK REDEMPTION;1994;9.2;540497;(0000000125)
    THE USUAL SUSPECTS;1995;8.7;275216;(0000000123)
            
  5. Zorg dat elk woord van de filmtitels begint met een hoofdletter. Woorden worden gescheiden door spaties. Toegepast op het vorige voorbeeld wordt dit (film.5.txt6)

    The Shawshank Redemption;1994;9.2;540497;(0000000125)
    The Usual Suspects;1995;8.7;275216;(0000000123)
            

    Hint: Als je werkt met een groep \n bij het vervangen, dan kan je deze groep laten voorafgaan door de modifiers \U en \L om alle karakters uit de groep bij de vervanging om te zetten naar hoofdletters (\U\n ) of kleine letters (\U\n ). Alternatief zorgen de modifiers \u en \l er voor dat enkel het eerste karakter van de groep wordt omgezet naar een hoofdletter of kleine letter. Deze modifiers werken ook met het vervangsymbool &

  6. Plaats voor de titel van elke film met score groter of gelijk aan 9 een plusteken (+), voor elke film met score kleiner dan 4.5 een minteken (-) en een gelijkteken (=) voor alle andere films Toegepast op het vorige voorbeeld wordt dit (film.6.txt7)

    +The Shawshank Redemption;1994;9.2;540497;(0000000125)
    =The Usual Suspects;1995;8.7;275216;(0000000123)
            

Richtlijnen bij het indienen

Volg aandachtig onderstaande richtlijnen bij het indienen van je oplossing: