Het tekstbestand NASDAQ.txt1 bevat de beursnotering van aandelen op de NASDAQ. Elke regel bevat de volgende informatie over een aandeel: $$i$$) volledige bedrijfsnaam, $$ii$$) afgekorte bedrijfsnaam, $$iii$$) datum waarop aandelenkoers betrekking heeft, $$iv$$) openingskoers, $$v$$) hoogste stand van koers die dag, $$vi$$) laagste stand van koers die dag, $$vii$$) slotkoers en $$viii$$) aantal verhandelde aandelen tijdens die dag. De verschillende informatievelden worden van elkaar gescheiden door een komma (,).
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 NASDAQ.i.txt (ZIP2), die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.
Zorg er voor dat de velden gescheiden worden door een asterisk (*), waarbij ook alle spaties vooraan en achteraan elk veld verwijderd worden. Zo moet
Australia Acquisition Corp.,AAC,20110103 ,9.7,9.7,9.63,9.63,1100 Apple Inc.,AAPL,20101207,325.64,330.26,324.84,329.57,15897200
bijvoorbeeld omgezet worden naar (NASDAQ.1.txt3)
Australia Acquisition Corp.*AAC*20110103*9.7*9.7*9.63*9.63*1100 Apple Inc.*AAPL*20101207*325.64*330.26*324.84*329.57*15897200
Sorteer de aandelen in dalende volgorde volgens het aantal dat ervan verhandeld werd. Indien aandelen met eenzelfde volume verhandeld werden, dan moeten deze aandelen alfabetisch gerangschikt worden volgens hun afgekorte bedrijfsnaam.
Bij de weergave van de stand van een beurskoers wordt gebruik gemaakt van een punt (.) als decimaalteken. Zorg er voor dat alle punten die als decimaalteken gebruikt worden door een komma (,) vervangen worden. Je mag er hierbij van uitgaan dat een punt als decimaalteken gebruikt wordt, als het wordt voorafgegaan en wordt gevolgd door een cijfer. Alle punten die niet als decimaalteken gebruikt worden moeten ongewijzigd blijven. Toegepast op het vorige voorbeeld wordt dit (NASDAQ.3.txt4)
Australia Acquisition Corp.*AAC*20110103*9,7*9,7*9,63*9,63*1100 Apple Inc.*AAPL*20101207*325,64*330,26*324,84*329,57*15897200
Voeg punten (.) toe die de duizendtallen groeperen in groepjes van drie, in de weergave van het aantal verhandelde aandelen. Je mag er hierbij van uitgaan dat er van een bedrijf nooit meer dan 999.999.999 aandelen op één dag verhandeld worden. Toegepast op het vorige voorbeeld wordt dit (NASDAQ.4.txt5)
Australia Acquisition Corp.*AAC*20110103*9,7*9,7*9,63*9,63*1.100 Apple Inc.*AAPL*20101207*325,64*330,26*324,84*329,57*15.897.200
De datum waarop de aandelenkoers betrekking heeft, wordt initieel weergegeven als een getal van 8 cijfers: 4 voor het jaar, 2 voor de maand en 2 voor de dag (jjjjmmdd). Pas deze voorstelling aan zodat de dag eerst komt, gevolgd door de maand en het jaar, telkens gescheiden door een slash (/). Geef hierbij enkel de laatste 2 cijfers van het jaar weer en laat bij de dag en de maand een eventuele voorloopnul (0) aan het begin weg. Toegepast op het vorige voorbeeld wordt dit (NASDAQ.5.txt6)
Australia Acquisition Corp.*AAC*3/1/11*9,7*9,7*9,63*9,63*1.100 Apple Inc.*AAPL*7/12/10*325,64*330,26*324,84*329,57*15.897.200
Plaats vooraan elke regel met een aandeel dat minstens 1.000.000 keer werd verhandeld een groter dan teken (>), en vooraan elke regel met een aandeel dat minder dan 1.000 keer werd verhandeld een kleiner dan teken (<). Aan het begin van de andere regels met aandelen plaats je een tilde (~). Toegepast op het vorige voorbeeld wordt dit (NASDAQ.6.txt7)
~Australia Acquisition Corp.*AAC*3/1/11*9,7*9,7*9,63*9,63*1.100 >Apple Inc.*AAPL*7/12/10*325,64*330,26*324,84*329,57*15.897.200
Volg aandachtig onderstaande richtlijnen bij het indienen van je oplossing:
Plaats je commando's voor de vijf delen van deze vraag onder de titels in het indienvenster.
Maak geen aanpassingen aan de regels die al in het venster staan. Deze worden immers gebruikt om de ingediende oplossing op te splitsen in de verschillende deelantwoorden. Op de feedbackpagina kan je controleren of de opsplitsing gelukt is.