Allgemeine Informatik I - Lösung Blatt 2
Aufgabe 4:
- cp /www/turing/htdocs/sai/ws00/allginf/uebung/blatt02/schiller* .
(kopiert die Datein schiller und schiller.f in den Heimatkatalog)
- cp schiller.f schiller.f.kopie (Sicherheitskopie von schiller.f)
- vi schiller.f
-
- :$ (gehe zum Dateiende)
- dd (lösche Zeile)
oder kürzer
-
Hinweis: Der Fehler ist in der Zeile 42 (nicht 41 wie es im Übungsblatt angegeben)
- 42 (gehe zu Zeile 42)
- 4x (4 Zeichen löschen)
-
- :1,$s/ (oder Kaiser[^)]*)//
(ersetzt in der ganzen Datei " (oder Kaiser<irgendwas_bloss_keine_Klammer>_zu)" durch "")
-
- :1,$s/\<dei\>/die/g
(ersetzt das Wort dei überall durch die)
-
Hinweis: Strophe 2 und 17 sind betroffen
- Einfügen eines returns an aktueller Position: i return Escape
-
Hinweis: mit :1 kommt man an den Anfang einer Datei
- 3dd (löscht drei Zeilen)
-
- Cursor auf zweites Leerzeichen bzw. Tab positionieren und dw drücken (löscht ein Wort)
oder
-
- mit J werden 2 Zeilen zusammengefügt.
Bsp: 7. Strophe: Man gehe auf die Zeile mit dem einzelnen "Der" und drücke J
-
Hinweis: die 6. und 7. Strophe sind vertauscht
- man gehe auf die Zeile "(*7. Strophe*)"
- 9dd (löscht 9 Zeilen und speichert sie in den internen Puffer)
- man gehe auf die Leerzeile zwischen der 6. und 8. Strophe
- p (fügt hinter der Zeile den Pufferinhalt ein)
-
- /Strophe (suche nach Strophe)
- mit n kommt man zum nächsten Treffer
oder
-
- gehe auf die Zeile "(*1. Strophe*)"
- 9yy (speichert 9 Zeilen in den Puffer)
- :$ (gehe in die letzte Zeile)
- p (fügt hinter der Zeile den Pufferinhalt ein)
- gehe auf Strophennummer
- fehlendes Zeichen einfügen mit i 2
- analog die Sache mit Strophe 20
-
- Strophe 20 hinter Strophe 1 kopieren wie in 11)
- :set nu (Zeilennummerung an)
- :3,19w AnfEnde (Zeilen 3 bis 19 in AnfEnde speichern)
- u (Undo) => macht kopieren von Strophe 20 rückgängig
oder kürzer
- :3,10w AnfEnde (strophe 1 speichern)
- :x,yw >> AnfEnde (wobei x die Nummer der ersten Zeile und y die Nummer der letzten Zeile von Strophe 20 sind. (*grins*) weiss die genauen Zeilennummern gerade nicht!)
-
Hinweis: zu löschen sind Strophe 4 (welche hinter Strophe 2 steht), 21 und 22
- löschen von 4 wie in 6) bzw. 9)
- gehe auf die Zeile "(*21. Strophe*)" (z.bsp.: mit /21)
- dG (löscht alles von hier bis zum Ende der Datei) (kann man es aber auch wie oben machen)
-
- /Strophe (suche Strophe)
- a) dd (lösche Zeile)
b) n (nächster Treffer)
c) wenn keine Treffer mehr dann stop , sonst gehe zu a)
oder besser
- :g/Strophe/d (ist eindeutig) (geht in die Zeilen mit dem angegebenen Muster und löscht sie)
(steht leider nur nicht im Script)
- in der 1 Zeile muss natürlich Friedrich Schiller als Author stehen
-
- diff schiller.f schiller (zeigt die Unterschiede zwischen schiller.f und schiller)
Hinweis: wenn ihr auch wundert warum beim diff ein Unterschied in Zeile 6-8 gefunden
wird, tja ein Leerzeichen am Ende der Zeile ist die Lösung!
- hier kann man nun nach Herzenslust noch weiter editieren