De Mount Everest (ook bekend als Qomolungma, Qomolangma of Sagarmatha Chomolungma) is een berg in de Himalaya, op de grens van Nepal en China. De Mount Everest steekt 8848 meter (29029 voet) boven zeeniveau uit. Deze absolute hoogte is de meest geaccepteerde manier om hoogtes van bergen te meten en in die zin is de Mount Everest de hoogste berg op Aarde.
De (topografische) promintentie of relatieve hoogte is een alternatieve definitie voor de onafhankelijke hoogte van een bergtop. De prominentie van een berg is het hoogteverschil tussen de top en de laagste hoogtelijn die de top helemaal omgeeft, maar die geen hogere top omgeeft, zoals je kan zien op bovenstaande figuur. Wanneer de prominentie van een top erg klein is, wordt deze top vaak niet gerekend als een echte berg. Dit geldt vaak voor zijtoppen van hoge bergen, bijvoorbeeld de zuidtop van de Mount Everest die geen echte berg is, ondanks de grote hoogte (8749 m, prominentie 10 m).
Gegeven is een tekstbestand mountains.txt1 dat een lijst met de hoogste bergen op Aarde bevat. Elke regel van het bestand bevat informatie over één berg. Deze informatie bestaat uit de volgende elf velden, die van elkaar worden gescheiden door verticale strepen (|): i) volgnummer, ii) naam of namen, iii) absolute hoogte (in meter), iv) absolute hoogte (in voet), v) relatieve hoogte (in meter), vi) bergketen, vii) coördinaten, viii) ouder, ix) jaartal van eerste beklimming, x) aantal beklimmingen en xi) land of landen. De eerste regel van een bestand is een hoofding, waarvan de kopteksten ook telkens van elkaar gescheiden worden door verticale strepen.
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. De
commando's mogen geen programmeerbare filters (bv. awk)
gebruiken. Alle opdrachten moeten na elkaar uitgevoerd worden. Geen enkele
van de commando's mag de eerste regel (hoofding) van het bestand wijzigen,
tenzij expliciet anders vermeld. Ter controle kan je gebruik maken van de
meegeleverde bestanden mountains.i.txt (ZIP2),
die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht
werd uitgevoerd.
Als het veld met het jaartal van de eerste beklimming leeg is, dan moet het ingevuld worden met de waarde unclimbed. Zo moet
Rank|Mountain|Height (m)|Height (ft)|Prominence (m)|Range|Coordinates|Parent mountain|First ascent|Ascents (failed attempts)|Country 1|Mount Everest/Sagarmatha/Chomolungma|8,848|29,029|8,848|Mahalangur Himalaya|27°59'17"N 86°55'31"E|none|1953|>>145 (121)|Nepal/China 2|K2/Qogir/Godwin Austen|8,611|28,251|4,020|Baltoro Karakoram|35°52'53"N 76°30'48"E|Mount Everest|1954|45 (44)|Pakistan/China ... 40|Gangkhar Puensum|7,570|24,836|2,995|Kula Kangri Himalaya|28°02'50"N 90°27'19"E|Kangchenjunga||0 (3)|Bhutan/China ... 93|Labuche Kang III/East|7,250|23,786|570|Labuche Himalaya|28°18'05"N 86°23'02"E|Labuche Kang||0 (0)|China ...
bijvoorbeeld omgezet worden naar (mountains.1.txt3)
Rank|Mountain|Height (m)|Height (ft)|Prominence (m)|Range|Coordinates|Parent mountain|First ascent|Ascents (failed attempts)|Country 1|Mount Everest/Sagarmatha/Chomolungma|8,848|29,029|8,848|Mahalangur Himalaya|27°59'17"N 86°55'31"E|none|1953|>>145 (121)|Nepal/China 2|K2/Qogir/Godwin Austen|8,611|28,251|4,020|Baltoro Karakoram|35°52'53"N 76°30'48"E|Mount Everest|1954|45 (44)|Pakistan/China ... 40|Gangkhar Puensum|7,570|24,836|2,995|Kula Kangri Himalaya|28°02'50"N 90°27'19"E|Kangchenjunga|unclimbed|0 (3)|Bhutan/China ... 93|Labuche Kang III/East|7,250|23,786|570|Labuche Himalaya|28°18'05"N 86°23'02"E|Labuche Kang|unclimbed|0 (0)|China ...
Het veld met het aantal beklimmingen eindigt optioneel op een spatie en een tekstfragment tussen ronde haken dat aangeeft hoeveel pogingen om de berg te beklimmen gefaald zijn. Je mag er van uitgaan dat er hoogstens één paar ronde haken voorkomt in het veld, en dat de haken altijd gebalanceerd zijn. Verplaats het aantal gefaalde beklimmingen (het optionele tekstfragment tussen ronde haken) naar een nieuw veld dat volgt op het veld met het aantal beklimmingen (spatie en tekst tussen ronde haken moeten uit het oorspronkelijke veld verwijderd worden). Voor bergen waarvoor het aantal beklimmingen niet vermeld wordt, moet ook een nieuw (leeg) veld op die positie aangemaakt worden. Ook de hoofding van het veld met het aantal beklimmingen moet over twee velden gesplitst worden, zoals aangegeven in onderstaand voorbeeld. We krijgen dan (mountains.2.txt4)
Rank|Mountain|Height (m)|Height (ft)|Prominence (m)|Range|Coordinates|Parent mountain|First ascent|Ascents|failed attempts|Country 1|Mount Everest/Sagarmatha/Chomolungma|8,848|29,029|8,848|Mahalangur Himalaya|27°59'17"N 86°55'31"E|none|1953|>>145|121|Nepal/China 2|K2/Qogir/Godwin Austen|8,611|28,251|4,020|Baltoro Karakoram|35°52'53"N 76°30'48"E|Mount Everest|1954|45|44|Pakistan/China ... 49|Muztagh Ata|7,509|24,636|2,698|Muztagata (Eastern Pamirs)|38°16'33"N 75°06'58"E|Kongur Tagh|1956|Many||China 50|Ismoil Somoni Peak|7,495|24,590|3,402|Pamir (Academy of Sciences Range)|38°56'35"N 72°00'57"E|Muztagh Ata|1933|||Tajikistan ...
De drie velden die de hoogte van de berg aangeven, bevatten natuurlijke getallen waarvan de groepen duizendtallen door komma's van elkaar gescheiden worden. Zorg ervoor dat die komma's verwijderd worden. Je mag er hierbij van uitgaan dat in het bestand enkel komma's voorkomen in deze drie velden. We krijgen dan (mountains.3.txt5)
Rank|Mountain|Height (m)|Height (ft)|Prominence (m)|Range|Coordinates|Parent mountain|First ascent|Ascents|failed attempts|Country 1|Mount Everest/Sagarmatha/Chomolungma|8848|29029|8848|Mahalangur Himalaya|27°59'17"N 86°55'31"E|none|1953|>>145|121|Nepal/China 2|K2/Qogir/Godwin Austen|8611|28251|4020|Baltoro Karakoram|35°52'53"N 76°30'48"E|Mount Everest|1954|45|44|Pakistan/China 3|Kangchenjunga|8586|28169|3922|Kangchenjunga Himalaya|27°42'12"N 88°08'51"E|Mount Everest|1955|38|24|Nepal/India 4|Lhotse|8516|27940|610|Mahalangur Himalaya|27°57'42"N 86°55'59"E|Mount Everest|1956|26|26|Nepal/China 5|Makalu|8485|27838|2378|Mahalangur Himalaya|27°53'23"N 87°05'20"E|Mount Everest|1955|45|52|Nepal/China ...
Sorteer de lijst met bergen eerst numeriek van groot naar klein op relatieve hoogte (in meter) en in tweede instantie lexicografisch op naam van de berg. Zorg er evenwel voor dat na sorteren, het eerste veld terug een oplopende nummering vanaf 1 krijgt, ongeacht de oorspronkelijke volgnummers die voor het sorteren gebruikt werden. We krijgen dan (mountains.4.txt6)
Rank|Mountain|Height (m)|Height (ft)|Prominence (m)|Range|Coordinates|Parent mountain|First ascent|Ascents|failed attempts|Country 1|Mount Everest/Sagarmatha/Chomolungma|8848|29029|8848|Mahalangur Himalaya|27°59'17"N 86°55'31"E|none|1953|>>145|121|Nepal/China 2|Nanga Parbat|8126|26660|4608|Nanga Parbat Himalaya|35°14'14"N 74°35'21"E|Dhaulagiri|1953|52|67|Pakistan 3|Jengish Chokusu/Tömür/Pk Pobeda|7439|24406|4148|Tian Shan|42°02'05"N 80°07'47"E|Ismail Samani Peak|1956|||Kyrgyzstan/China 4|Namcha Barwa|7782|25531|4106|Assam Himalaya|29°37'52"N 95°03'19"E|Kangchenjunga|1992|1|2|China 5|K2/Qogir/Godwin Austen|8611|28251|4020|Baltoro Karakoram|35°52'53"N 76°30'48"E|Mount Everest|1954|45|44|Pakistan/China ...
Plaats terug komma's tussen de groepen duizendtallen in de drie velden die de hoogte van de berg aangeven. We krijgen dan (mountains.5.txt7)
Rank|Mountain|Height (m)|Height (ft)|Prominence (m)|Range|Coordinates|Parent mountain|First ascent|Ascents|failed attempts|Country 1|Mount Everest/Sagarmatha/Chomolungma|8,848|29,029|8,848|Mahalangur Himalaya|27°59'17"N 86°55'31"E|none|1953|>>145|121|Nepal/China 2|Nanga Parbat|8,126|26,660|4,608|Nanga Parbat Himalaya|35°14'14"N 74°35'21"E|Dhaulagiri|1953|52|67|Pakistan 3|Jengish Chokusu/Tömür/Pk Pobeda|7,439|24,406|4,148|Tian Shan|42°02'05"N 80°07'47"E|Ismail Samani Peak|1956|||Kyrgyzstan/China 4|Namcha Barwa|7,782|25,531|4,106|Assam Himalaya|29°37'52"N 95°03'19"E|Kangchenjunga|1992|1|2|China 5|K2/Qogir/Godwin Austen|8,611|28,251|4,020|Baltoro Karakoram|35°52'53"N 76°30'48"E|Mount Everest|1954|45|44|Pakistan/China ...
Volg aandachtig onderstaande richtlijnen bij het indien van je oplossing voor deze opgave:
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 regels worden immers gebruikt om het bestand op te splitsen in de verschillende deelantwoorden. Op de feedbackpagina kan je controleren of de opsplitsing gelukt is.
Klik hier om een voorbeeld te vinden van een (foutieve8) inzending.