Toen vliegtuigen het luchtruim boven Europa en Amerika begonnen te veroveren, kwamen ze in aanvaring met een onverwachte tegenstander — arenden1.

vogels en vliegtuigen
Aanvaringen tussen vogels en vliegtuigen zijn niet ongewoon, maar vormen zelden een gevaar (voor vliegtuigen).

In 1928 schreef de Associated Press2 hierover:

Sommige confrontaties van piloten met arenden zijn buitengewoon schrijnend te noemen. Toen een vliegtuig onlangs over de bergen achter Athena vloog, trokken verschillende arenden tegelijkertijd met een duikvlucht ten aanval. Hun inslagen doorboorden het toestel en dwongen de piloot om razendsnel te dalen en een noodlanding te maken, waardoor hij en een passagier gewond raakten.

In Adventures With a Texas Naturalist3 (1975) geeft Roy Bedichek aan dat dergelijke situaties al ten tijde van de Eerste Wereldoorlog gerapporteerd werden en dat ze 60 jaar later nog altijd plaatsvonden. Hij schrijft dat piloot J.O. Casparis over Big Bend National Park4 in Texas vloog toen

een enorme arend zich met een duikvlucht op zijn vliegtuig stortte voordat hij de kans kreeg om te schieten, waardoor het beest zich door het raam boorde, een deel van de romp afscheurde en hij heel wat gebroken glas over zich heen kreeg.

J. Wentworth Day berichtte dan weer over een aanval van twee arenden op een drie-motorig stalen passagiersvliegtuig in de buurt van Allahbad (India):

De eerste arend vloog moedwillig recht in de middelste motor, terwijl de tweede zich met een duikvlucht vanaf drieduizend voet als een steen dwars door de stalen vleugel boorde en er een groot gat in sloeg.

Bedichek schrijft dat het Franse leger na de eerste aanvallen serieus begon te overwegen om arenden af te richten om aanvallen uit te voeren op vijandelijke vliegtuigen, en dat het British Air Ministry5 richtlijnen uitschreef met de best mogelijke tacktieken om aanvallen door arenden te pareren. Daarbij merkte hij ook nog het volgende op:

Uiteraard hebben moderne vliegtuigen weinig te vrezen van individuele arenden of andere vogels, maar confrontaties met grote trekvluchten — vooral als het om grote aantallen van grote vogels gaat — leveren nog steeds een aanzienlijk gevaar op.

Opgave

Het tekstbestand crashes.txt6 bevat een dataset met ongevallen die wereldwijd plaatsvonden en waarbij civiele, commerciële of militaire vliegtuigen betrokken waren tussen 17 september 1908 en 8 juni 2009. De eerste regel bevat een hoofding. Elke volgende regel bevat gegevens over één vliegtuigcrash, bestaande uit zeven velden die telkens van elkaar gescheiden worden door een verticale streep (|):

  1. Date: datum waarop het vliegtuig neerstortte (formaat D/M/YYYY)

  2. Time: tijdstip waarop het vliegtuig neerstortte (formaat h:m)

  3. Location: plaats waar het vliegtuig neerstortte

  4. Operator: luchtvaartmaatschappij die het vliegtuig exploiteerde

  5. Aboard: aantal passagiers en bemanningsleden aan boord van het vliegtuig

  6. Fatalities: aantal passagiers en bemanningsleden die om het leven kwamen

  7. Summary: korte samenvatting van de crash

De informatievelden bevatten zelf geen verticale strepen (|).

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 crashes.i.txt (ZIP7), die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Voeg als voorlaatste informatieveld een extra veld Bird toe (ook aan de hoofding) dat de letter V bevat als bird of flock in de samenvatting (Summary) voorkomt en de letter X als dat niet het geval is. Daarbij mag geen onderscheid gemaakt worden tussen hoofdletters en kleine letters. Zo moet

    Date|Time|Location|Operator|Aboard|Fatalities|Summary
    10/3/1946|20:55|Off Hobart, Tasmania|Australian National Airways|25|25|The aircraft crashed 10 mins after takeoff from Hobart. Inadvertent engagement of the autopilot instead of the fuel crossfeed.
    16/7/1999|21:41|Off Martha's Vineyard, Massachusetts|Private|3|3|The aircraft, piloted by John F. Kennedy Jr., 38, crashed into the sea approximately 34 miles west of Martha's Vineyard while en route from Fairfield, New Jersey to Martha's Vineyard, Massachusetts. Killed along with Kennedy were his wife Carolyn and her sister Lauren Bessette. Kennedy's failure to maintain control of the airplane during a descent over water at night, which was a result of spatial disorientation. Contributing factors in the accident were haze, and the dark night.
    23/11/1962|12:24|Ellicott, Maryland|United Air Lines|18|18|The aircraft penetrated a flock of Whistling Swans at 6,000 ft. One, estimated to be 13 pounds, struck the leading edge of the left horizontal stabilizer, weakening the structure and causing it to detach. The aircraft lost control and broke-up in mid-air and crashed. Bird collision.
    15/9/1988|13:5|Bahar Dar, Ethiopia|Ethiopian Airlines|104|35|During takeoff, the aircraft ingested numerous pigeons into both engines. One engine lost thrust almost immediately and the second lost thrust during the emergency return to the airport. The aircraft crashed while trying to land. Engine failure due to ingestion of 10-16 Columba Guinea birds.
    22/9/1995|7:45|Anchorage, Alaska|Military - U.S. Air Force|24|24|The aircraft suffered multiple bird strikes in the No. 1 and 2 engines just after taking off when it flew into a flock of 100 or more Canada Geese. The crew initiated a slow climb and began to dump fuel. The aircraft attained a maximum altitude of 250 ft. before it started to descend. The plane impacted a hilly wooded area less than a mile from the runway, broke up, exploded and burned.  Ingestion of Canada geese into the Nos.1 and 2 engines. Lack of adequate procedures to reduce bird hazards. The crew was not warned about observations of birds in the area by the ATC.
    ...

    bijvoorbeeld omgezet worden naar (crashes.1.txt8)

    Date|Time|Location|Operator|Aboard|Fatalities|Bird|Summary
    10/3/1946|20:55|Off Hobart, Tasmania|Australian National Airways|25|25|X|The aircraft crashed 10 mins after takeoff from Hobart. Inadvertent engagement of the autopilot instead of the fuel crossfeed.
    16/7/1999|21:41|Off Martha's Vineyard, Massachusetts|Private|3|3|X|The aircraft, piloted by John F. Kennedy Jr., 38, crashed into the sea approximately 34 miles west of Martha's Vineyard while en route from Fairfield, New Jersey to Martha's Vineyard, Massachusetts. Killed along with Kennedy were his wife Carolyn and her sister Lauren Bessette. Kennedy's failure to maintain control of the airplane during a descent over water at night, which was a result of spatial disorientation. Contributing factors in the accident were haze, and the dark night.
    23/11/1962|12:24|Ellicott, Maryland|United Air Lines|18|18|V|The aircraft penetrated a flock of Whistling Swans at 6,000 ft. One, estimated to be 13 pounds, struck the leading edge of the left horizontal stabilizer, weakening the structure and causing it to detach. The aircraft lost control and broke-up in mid-air and crashed. Bird collision.
    15/9/1988|13:5|Bahar Dar, Ethiopia|Ethiopian Airlines|104|35|V|During takeoff, the aircraft ingested numerous pigeons into both engines. One engine lost thrust almost immediately and the second lost thrust during the emergency return to the airport. The aircraft crashed while trying to land. Engine failure due to ingestion of 10-16 Columba Guinea birds.
    22/9/1995|7:45|Anchorage, Alaska|Military - U.S. Air Force|24|24|V|The aircraft suffered multiple bird strikes in the No. 1 and 2 engines just after taking off when it flew into a flock of 100 or more Canada Geese. The crew initiated a slow climb and began to dump fuel. The aircraft attained a maximum altitude of 250 ft. before it started to descend. The plane impacted a hilly wooded area less than a mile from the runway, broke up, exploded and burned.  Ingestion of Canada geese into the Nos.1 and 2 engines. Lack of adequate procedures to reduce bird hazards. The crew was not warned about observations of birds in the area by the ATC.          
    ...
  2. Zorg ervoor dat de samenvatting (Summary) niet langer is dan 50 karakters. Als de samenvatting langer is dan 50 karakters, dan moet die afgekapt worden na 47 karakters en aangevuld worden met drie puntjes (...). We krijgen dan (crashes.2.txt9)

    Date|Time|Location|Operator|Aboard|Fatalities|Bird|Summary
    10/3/1946|20:55|Off Hobart, Tasmania|Australian National Airways|25|25|X|The aircraft crashed 10 mins after takeoff from...
    16/7/1999|21:41|Off Martha's Vineyard, Massachusetts|Private|3|3|X|The aircraft, piloted by John F. Kennedy Jr., 3...
    23/11/1962|12:24|Ellicott, Maryland|United Air Lines|18|18|V|The aircraft penetrated a flock of Whistling Sw...
    15/9/1988|13:5|Bahar Dar, Ethiopia|Ethiopian Airlines|104|35|V|During takeoff, the aircraft ingested numerous ...
    22/9/1995|7:45|Anchorage, Alaska|Military - U.S. Air Force|24|24|V|The aircraft suffered multiple bird strikes in ...
    ...
  3. Voeg de datum (Date) en het tijdstip (Time) waarop het vliegtuig neerstortte samen tot één enkel informatieveld Timestamp (ook in de hoofding). Dit veld moet het formaat DD/MM/YYYY (hh:mm) gebruiken als er een tijdstip beschikbaar is en DD/MM/YYYY als dat niet het geval is. Dit betekent dat waar nodig ook voorloopnullen moeten toegevoegd worden in de datum (dag en maand) en het tijdstip (uren en minuten). We krijgen dan (crashes.3.txt10)

    Timestamp|Location|Operator|Aboard|Fatalities|Bird|Summary
    10/03/1946 (20:55)|Off Hobart, Tasmania|Australian National Airways|25|25|X|The aircraft crashed 10 mins after takeoff from...
    16/07/1999 (21:41)|Off Martha's Vineyard, Massachusetts|Private|3|3|X|The aircraft, piloted by John F. Kennedy Jr., 3...
    23/11/1962 (12:24)|Ellicott, Maryland|United Air Lines|18|18|V|The aircraft penetrated a flock of Whistling Sw...
    15/09/1988 (13:05)|Bahar Dar, Ethiopia|Ethiopian Airlines|104|35|V|During takeoff, the aircraft ingested numerous ...
    22/09/1995 (07:45)|Anchorage, Alaska|Military - U.S. Air Force|24|24|V|The aircraft suffered multiple bird strikes in ...
    14/02/1956|Near Fort Chimo, Quebec, Canada|Spartan Air Services|3|2|X|Crashed on a ferrying flight. Soldier of fortun...
    04/10/1989|Perth, Ontario, Canada|Military - U.S. Air Force|4|4|X|A dry  fuel pump led to the ignition of fuel va...
    02/09/1928|Toul, France|CIDNA|3|3|X|
    ...
  4. Verwijder alle vliegtuigcrashes waar niet iedereen aan boord van het vliegtuig omkwam (AboardFatalities). Crashes waarvan niet geweten is hoeveel mensen er aan boord waren (Aboard) of hoeveel mensen omkwamen (Fatalities) moeten ook verwijderd worden. We krijgen dan (crashes.4.txt11)

    Timestamp|Location|Operator|Aboard|Fatalities|Bird|Summary
    10/03/1946 (20:55)|Off Hobart, Tasmania|Australian National Airways|25|25|X|The aircraft crashed 10 mins after takeoff from...
    16/07/1999 (21:41)|Off Martha's Vineyard, Massachusetts|Private|3|3|X|The aircraft, piloted by John F. Kennedy Jr., 3...
    23/11/1962 (12:24)|Ellicott, Maryland|United Air Lines|18|18|V|The aircraft penetrated a flock of Whistling Sw...
    22/09/1995 (07:45)|Anchorage, Alaska|Military - U.S. Air Force|24|24|V|The aircraft suffered multiple bird strikes in ...
    04/10/1989|Perth, Ontario, Canada|Military - U.S. Air Force|4|4|X|A dry  fuel pump led to the ignition of fuel va...
    02/09/1928|Toul, France|CIDNA|3|3|X|
    31/10/1929|Off Bremerton, Washington|Bremerton-Seattle Air Taxi / Gorst Air Lines|2|2|X|The air taxi crashed into Puget Sound as it att...
    25/11/1985|Near Luassingua, Angola|Military - Angolan Air Force|22|22|X|Shot down by South African anti-aircraft fire.
    ...
  5. Sorteer de vliegtuigcrashes volgens dalend aantal omgekomen personen (Fatalities) en vervolgens lexicografisch op tijdstip (Timestamp). Voeg vooraan een extra informatieveld Rank toe (ook aan de hoofding) die het volgnummer van de crash aangeeft (begin te nummeren vanaf 1). We krijgen dan (crashes.5.txt12)

    Rank|Timestamp|Location|Operator|Aboard|Fatalities|Bird|Summary
    1|12/11/1996 (18:40)|Near Charkhidadri, India|Saudi Arabian Airlines / Kazastan Airlines|349|349|X|Midair collision 17 km W of New Delhi.  The Sau...
    2|03/03/1974 (11:41)|Near Ermenonville, France|Turkish Airlines (THY)|346|346|X|The aircraft crashed shortly after takeoff from...
    3|23/06/1985 (07:15)|AtlantiOcean, 110 miles West of Ireland|Air India|329|329|X|The aircraft broke up in flight and crashed int...
    4|19/08/1980 (19:08)|Near Riyadh, Saudi Arabia|Saudi Arabian Airlines|301|301|X|The flight experienced a fire in the aft cargo ...
    5|03/07/1988 (10:55)|Over the Persian Gulf, near Bandar Abbas, Iran|Iran Air|290|290|X|The civilian Iranian airliner was shot down by ...
    ...

Epiloog

Nadat vlucht 123 van Japan Airlines13 op 12 augustus 1985 vanuit Tokio was opgestegen, kreeg het vliegtuig te kampen met mechanische storingen. Het bleef 32 minuten lang vechten om in de lucht te blijven, maar stortte uiteindelijk te pletter op de berg Takamagahara14. Daarbij kwamen alle 520 inzittenden om het leven.

Tussen de wrakstukken werd het bedrijfsdagboek gevonden van de 52-jarige scheepsmanager Hirotsugu Kawaguchi. Blijkbaar had hij het noodlottige halfuur besteed aan het opstellen van een zeven pagina's tellende brief aan zijn familie:

Mariko, Tsuyoshi, Chiyoko — ga alstublieft goed met elkaar om en help je mama. Papa vindt het erg jammer dat hij dit niet zal overleven. Ik ken de oorzaak niet. Er zijn vijf minuten verstreken. …

Ik wil nooit meer een vliegtuig nemen. Lieve God, help me alstublieft. Ik had niet gedacht dat onze maaltijd van gisterenavond de laatste zou zijn die ik met jullie zou delen. …

Er lijkt iets te zijn ontploft in het vliegtuig. Er komt rook uit. … Vliegtuig gaat neer. Ik weet niet waar we naartoe gaan en wat er zal gebeuren. …

Tsuyoshi — ik reken echt op je schat. Het spijt me verschrikkelijk wat er met me gebeurt. Tot ziens. Zorg alstublieft goed voor onze kinderen. Het is nu half zes. Het vliegtuig draait en gaat snel naar beneden. …

Ik ben je erg dankbaar dat ik tot nu toe een heel gelukkig leven heb kunnen leiden.

In de hele wereldgeschiedenis blijft deze crash het dodelijkste ongeval met één vliegtuig.