Teil der Zeilen löschen mit vi?

Hinweis: In dem Thema Teil der Zeilen löschen mit vi? gibt es 1 Antwort.
  • Von vielen Zeilen wie "Blah blah Telefon 1234, Fax 5678 bis 17 Uhr"
    möchte ich jeweils vom Zeilenanfang bis "Telefon " alles löschen
    und ab dem Komma bis zum Zeilenende.
    Vom Beispiel soll nur "1234" übrig bleiben.


    Leider ist es nicht an der gleichen Stelle und auch unterschiedlich lang.


    Wie kann ich den vi Befehl formen?

    Für den Inhalt des Beitrages 30238 haftet ausdrücklich der jeweilige Autor: SwissMäc

  • Muss es denn vi sein? Dann würde ich das manuell in mehreren Schritten machen.


    Oder mit sed oder awk an der Kommandozeile - wäre das auch eine Lösung?


    Code
    awk -F"Telefon " '{ split ($2,a,","); print a[1]}' LISTE.txt


    das würde die Datei "LISTE.txt" nach dem Wort "Telefon" mit einem Leerzeichen dahinter "Telefon " suchen, dann den 2ten Parameter aufsplitten (Das komma ist der Split-Parameter" und das ganze in ein Array schreiben - gleichzeitig den jeweiligen Array-Wert ausgeben - sprich die Telefonnummern.


    Wenn es denn so streng strukturiert ist, könnte es so gehen :)