Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Textzeilen (csv) verändern, sed, awk?

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84

    Textzeilen (csv) verändern, sed, awk?

    Hallo,
    ich würde gerne aus dieser Art von Textzeilen per Kommando/Script verändern:

    ...
    13.0396,47.64733,"SB9800 Camping-Resort Allweglehen, Tel: +4986522396 - Bnd. N, S. 486"
    21.86256,53.78019,"PN3680 Camp Nowe Guty 60, Tel: +491797794272 - Bnd. N, S. 935"
    6.65098,43.2053,"PO8300 Yelloh! Village Les Tournels, Tel: +494559090 - Bnd. S, S. 837"
    ...

    Die ersten Zeichen nach dem Hochkomma bis zur ersten Leerstelle sollen (ersatzlos) entfernt werden.

    Mit sed bekomme ich es nicht hin, jemand einen Tipp? awk?

    So sollte es am Ende ausschauen:
    13.0396,47.64733,"Camping-Resort Allweglehen, Tel: +4986522396 - Bnd. N, S. 486"
    21.86256,53.78019,"Camp Nowe Guty 60, Tel: +491797794272 - Bnd. N, S. 935"
    6.65098,43.2053,"Yelloh! Village Les Tournels, Tel: +494559090 - Bnd. S, S. 837"

    (der letzte Schritt wäre noch das entfernen am Ende, also das " - Bnd. x, S. xxx" kann auch weg)
    Geändert von linux-try (26.05.19 um 16:40 Uhr)
    Viele Grüße,
    Martin

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    Wie hast Du es denn mit sed probiert? Grundsätzlich sollte das nämlich kein Problem darstellen.
    Ich bin root - ich darf das.

  3. #3
    Codefuzzy Avatar von Efraim
    Registriert seit
    Jun 2010
    Beiträge
    445
    Code:
    sed 's|"[^ ]* |"|;s| - Bnd\. [A-Z], S\. [0-9]*"|"|' Datei.csv
    "Datei.csv" musst Du natürlich ersetzen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84
    Thx!
    Das man in sed auch mehrere Zeichen mit regEx austauschen war hatte ich zwar fast "geahnt" ...

    Aber das "^", das steht doch eigentlich für Zeilenanfang, was hier ja nicht stimmt.
    Letztlich suchst du ja nach einem Hochkomma, Zeichen bis zu einer Leerstelle und ersetzt es nur durch ein Hochkomma. Aber das ^ ?
    Viele Grüße,
    Martin

  5. #5
    Registrierter Benutzer
    Registriert seit
    Apr 2011
    Ort
    Bergheim
    Beiträge
    135
    Das Zeichen ^ hat 2 Bedeutungen innerhalb von regulären Ausdrücken. Einerseits steht es für den Zeilenanfang, andererseits steht es für die Negierung einer Klasse. Also z. B. "[^ ]" heißt in dem Fall, alles außer Leerzeichzeichen.

  6. #6
    Codefuzzy Avatar von Efraim
    Registriert seit
    Jun 2010
    Beiträge
    445
    So ist es. ".* " würde bis zum letzten Leerzeichen matchen (gierig), also fast die ganze Zeile. "[^ ]* " matcht nur bis zum ersten Leerzeichen.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    2.551
    Ergänzung als noob-leichter-veständlich:

    Code:
     sed 's/\"...... /\"/' Datei.csv  | sed 's/ \- B.*\"$/\"/'
    Erster sed:

    1. doppeltes Hochkomma (") und nachfolgende sechs beliebige Zeichen und ein Leerzeichen werden durch ein " ersetzt.

    Zweiter sed:

    Ein Leerzeichen, ein Bindestrich , ein Leerzeichen , ein B gefolgt von beliebig vielen Zeichen gefolgt von einem doppelten Hochkomma ("$) am Zeilenende werden durch ein " ersetzt.

    Man beachte die Single quotes bei " und \- .

Ähnliche Themen

  1. ISO verändern und brennen
    Von JeWe im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 17.02.06, 10:31
  2. Fensterleiste verändern ?
    Von Franknborder im Forum Linux Allgemein
    Antworten: 4
    Letzter Beitrag: 30.07.04, 15:55
  3. Output verändern
    Von Los_Andros im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 26.11.03, 14:42
  4. Wie kann ich KDE verändern
    Von Radde im Forum Windowmanager
    Antworten: 5
    Letzter Beitrag: 21.04.03, 12:02
  5. Volumes verändern !?!
    Von Guru im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 14.04.03, 11:39

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •