Het tekstbestand topscorer.txt1 bevat informatie over de 50 spelers die het meeste doelpunten gemaakt hebben in matchen van de UEFA Champions League. De eerste regel van dit bestand bevat de hoofding. Alle andere regels bevatten de volgende informatievelden van één speler: i) rang, ii) naam speler, iii) land, iv) doelpunten, v) gespeelde matchen (Apps), vi) gemiddeld aantal doelpunten per match (Ratio), vii) jaar van eerste match (Start year), viii) jaar van laatste match (Stop year) en ix) clubs waarvoor de speler gespeeld heeft (Clubs). De informatievelden worden telkens van elkaar gescheiden door één enkele tab, waarbij het jaar van de laatst gespeelde match eventueel leeg kan zijn als de speler nog actief is. Als een speler voor meerdere clubs gespeeld heeft, dan worden ook de namen van deze clubs telkens door een tab gescheiden.

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 er voor dat elk van deze commando’s bestaat uit zo weinig mogelijk tekens. Alle opdrachten moeten na elkaar uitgevoerd worden. Geen enkele opdracht mag de eerste regel met de hoofding wijzigen, tenzij dit expliciet in de omschrijving van de opgave vermeld staat. Ter controle kan je gebruik maken van de meegeleverde bestanden topscorer.i2 ($$0 \le i \le 5$$), die telkens de inhoud van het bestand bevatten nadat de i-de opdracht werd uitgevoerd.

1

Vervang het huidige scheidingsteken door een puntkomma (;). Vervang in het veld met de clubs waarvoor de speler gespeeld heeft alle tabs door een komma gevolgd door een spatie (, ). Zo moet bijvoorbeeld

#Rank	Player	Country	Goals	Apps	Ratio	Start year	Stop year	Clubs
1	Cristiano Ronaldo	Portugal	88	121	0.73	03		Manchester United	Real Madrid
2	Lionel Messi	Argentina	80	102	0.78	05		Barcelona
3	Raúl	Spain	71	142	0.5	95	11	Real Madrid	Schalke 04
4	Ruud van Nistelrooy	Netherlands	56	73	0.77	98	09	PSV	Manchester United	Real Madrid
5	Thierry Henry	France	50	112	0.45	97	10	Monaco	Arsenal	Barcelona

omgezet worden naar

#Rank	Player	Country	Goals	Apps	Ratio	Start year	Stop year	Clubs
1;Cristiano Ronaldo;Portugal;88;121;0.73;03;;Manchester United, Real Madrid
2;Lionel Messi;Argentina;80;102;0.78;05;;Barcelona
3;Raúl;Spain;71;142;0.5;95;11;Real Madrid, Schalke 04
4;Ruud van Nistelrooy;Netherlands;56;73;0.77;98;09;PSV, Manchester United, Real Madrid
5;Thierry Henry;France;50;112;0.45;97;10;Monaco, Arsenal, Barcelona

2

Voeg de velden Start year en Stop year samen tot één enkel veld waarbij de beide jaartallen gescheiden worden door een liggend streepje (-). Voeg voor elk jaartal ook een afkappingsteken (') toe (indien de speler nog actief is, dan mag er geen afkappingsteken toegevoegd worden voor het ontbrekende jaar van laatste match). Toegepast op het vorige voorbeeld wordt dit

#Rank	Player	Country	Goals	Apps	Ratio	Start year	Stop year	Clubs
1;Cristiano Ronaldo;Portugal;88;121;0.73;'03-;Manchester United, Real Madrid
2;Lionel Messi;Argentina;80;102;0.78;'05-;Barcelona
3;Raúl;Spain;71;142;0.5;'95-'11;Real Madrid, Schalke 04
4;Ruud van Nistelrooy;Netherlands;56;73;0.77;'98-'09;PSV, Manchester United, Real Madrid
5;Thierry Henry;France;50;112;0.45;'97-'10;Monaco, Arsenal, Barcelona

3

Verwijder de regels met spelers die voor 4 of meer ploegen gespeeld hebben.

4

Wijzig de volgorde van de velden naar: i) goals, ii) naam, iii) ratio, iv) aantal matchen (Apps), v) jaartallen en vi) land. De velden met de ranking en de ploegen moeten dus weggelaten worden. Toegepast op het vorige voorbeeld wordt dit

#Rank	Player	Country	Goals	Apps	Ratio	Start year	Stop year	Clubs
88;Cristiano Ronaldo;0.73;121;'03-;Portugal
80;Lionel Messi;0.78;102;'05-;Argentina
71;Raúl;0.5;142;'95-'11;Spain
56;Ruud van Nistelrooy;0.77;73;'98-'09;Netherlands
50;Thierry Henry;0.45;112;'97-'10;France

5

Sorteer de lijst met spelers volgens het Ratio veld van hoog naar laag. Als spelers een gelijk gemiddeld aantal doelpunten per match hebben, dan moeten ze alfabetisch op naam gesorteerd worden.


Plaats je commando’s voor de vijf delen van deze vraag in het indienvenster onder de titels. Maak geen aanpassingen aan de regels die al reeds in het venster staan, deze regels worden gebruikt om het bestand op te splitsen. Een voorbeeld van een (foutieve) inzending vind je via deze link3.

In de feedbackpagina kan je controleren of de opsplitsing gelukt is.