Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 18

Thema: SED Formatierung - Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    11

    SED Formatierung - Problem

    Hallo, ich komme kaum weiter bei der Findung meines Problems.
    Ich habe eine CSV, in der folgenden Formatierung

    Code:
    bla;bla;bla;x;x;x;x;x;x;x;x;x;x;x;
    bla;bla;bla;y;y;y;y;y;y;y;y;y;y;
    bla;bla;bla;z;z;z;z;z;z;z;z;z;z;z;
    bla;bla;bla;a;a;a;a;a;a;a;a;a;a;
    bla;bla;bla;b;b;b;b;b;b;b;b;b;b;
    Mit sed würde ich gerne die folgende Formatierung haben:

    Code:
    bla;bla;bla
    bla;bla;bla
    bla;bla;bla
    bla;bla;bla
    bla;bla;bla
    Ergo möchte ich ab dem 3. Semikolon den Rest der Zeile löschen.

    Um danach das 3. Semikolon zu löschen kann ich dies mit folgendem Code machen
    Code:
    sed 's/;//3'
    Mir fehlt aber der Teil davor.

    Würde mich sehr freuen, wenn ihr mir helfen könntet.
    Geändert von shanny (27.08.13 um 12:30 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    21.418
    Code:
    man cut
    *10Zeichen*
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    11
    Hmm, ich muss den Code oben nochmal ändern. Die "bla"s sind alle verschieden.

    Ich editiere das nochmal anders:

    Code:
    Host1;Adresse1;Online;Time1;Date1;Ressouce1;Attempt1;Ping1;
    Host13;Adresse2;Offline;Time1;Date1;Ressouce1;Attempt1;Ping1;
    Host450;Adresse3;Incident;Time1;Date1;Ressouce1;Attempt1;Ping1;
    Host3;Adresse4;Offline;Time1;Date1;Ressouce1;Attempt1;Ping1;
    Host1245;Adresse5;Online;Time1;Date1;Ressouce1;Attempt1;Ping1;
    Der Einzige Angriffspunkt ist wirklich nur das 3. Semikolon.
    Geändert von shanny (27.08.13 um 12:51 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    21.418
    Das ändert nichts an meinem Posting.

    Ginge auch über Bash-interne Stringverarbeitung, da müsste ich aber auch selbst noch googlen...
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    11
    Hast du ein Beispiel für "man cut"? Wüsste gerade nicht, wie ich das anwenden soll. Bin froh das ich das meiste mit SED hinbekommen habe.

    (Und danke schonmal für deine Hilfe!)
    Geändert von shanny (27.08.13 um 12:54 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    21.418
    Sorry, aber:
    - hast Du die man-Page gelesen?
    - hast Du ggf. mal das probiert?
    Ich bin root - ich darf das.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    11
    Muss ich mich einlesen, arbeite erst seid 3 Wochen mit Linux

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    21.418
    :-)

    kleiner Tipp: Hier bekommst Du eher "Hilfe zur Selbsthilfe" - sprich weniger gleich die direkte Lösung (kommt auch vor, je nach dem an wen Du gerätst :-) sondern eher ein Hinweis darauf, wo und wie Du die Lösung selbst findest.

    Es wird auch "erwartet", daß Du Links oder Hinweise auf Doku ernst nimmst - im Gegensatz zu Deiner vermutlichen Erfahrung ist die Doku unter Linux sogar echt gut und lesenswert.
    Ich bin root - ich darf das.

  9. #9
    Registrierter Benutzer Avatar von buzz768
    Registriert seit
    Apr 2005
    Ort
    Rostock
    Beiträge
    2.016
    Code:
    sed -n ':a;h;s/[^;]//g;/^;;$/!{x;s/;[^;]*$//;ba};x;p' file
    Geändert von buzz768 (27.08.13 um 13:14 Uhr) Grund: -n
    Arch Linux / Intel Z77 / i5-3570K / 8GB PC3-1333 / SAMSUNG SSD 830 128GB

  10. #10
    Rain_maker
    Gast
    Und wenn man dann die Hinweise ernst nimmt, dann fällt einem z.B. auf, daß das erste Beispiel im ersten Treffer (= Eintrag zu cut im Wiki von ubuntuusers.de) der geposteten Google-Suche das Problem des TE praktisch 1:1 behandelt.

    Die einzige Transferleistung bestünde im Austausch des Trennzeichens und der Nummerierung der gewünschten Felder.

    //Edit:

    @buzz768

    *Muahahaha* wasn "sed-Monster".

    Warum einfach, wenns auch kompliziert geht, aber trotz allem wirklich nett.

    Na gut, dann darf ich auch mal

    Code:
    awk -F ';' '{print $1";"$2";"$3}' file
    Aber im Gegensatz zum vorigen "sed-Monster" ist das -um beim Vergleich zu bleiben- maximal ein Monsterchen mit dem man nicht mal kleine Kinder erschrecken kann.
    Geändert von Rain_maker (27.08.13 um 13:25 Uhr)

  11. #11
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    11
    Danke danke =)
    Problem ist einfach, dass ich noch nicht alle Befehle kenne. Auch wenn "cut" da sehr naheliegend ist, muss ich mich anfangs einfach durcharbeiten und bleibe an einem Punkt hängen.

    DANKE FÜR EURE HILFE! (Da gehen die Kopfschmerzen auch langsam wieder weg)
    Geändert von shanny (27.08.13 um 13:31 Uhr)

  12. #12
    Rain_maker
    Gast
    Zitat Zitat von shanny Beitrag anzeigen
    /Edit
    cut -d; -f1-3 würde beispielsweise nicht gehen, da er mit dem ; nicht klar kommt.
    Nope, man muss nur das Trennzeichen in Anführungszeichen oder Hochkommata packen.

  13. #13
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    21.418
    Zitat Zitat von shanny Beitrag anzeigen
    Problem ist einfach, dass ich noch nicht alle Befehle kenne.
    Kein Problem:
    https://www.google.de/search?q=linux...alten+ausgeben

    :-)

    ... das mit dem ; - Google-Stichwort: "Sonderzeichen escapen"


    Wenn du damit klar kommst, daß die NSA erfährt, daß Du Linux verwendest. Du darfst natürlich auch gerne eine andere Suchmaschine verwenden - die Ergebnisse sind mehr oder weniger identisch und transparent.
    Ich bin root - ich darf das.

  14. #14
    Registrierter Benutzer
    Registriert seit
    Aug 2013
    Beiträge
    11
    Zitat Zitat von Rain_maker Beitrag anzeigen
    Nope, man muss nur das Trennzeichen in Anführungszeichen oder Hochkommata packen.
    Habe ich gerade gesehen, und deswegen schon gelöscht. (Ihr seid sehr schnell!)

  15. #15
    Rain_maker
    Gast
    Zitat Zitat von shanny Beitrag anzeigen
    Habe ich gerade gesehen, und deswegen schon gelöscht
    Und genau deshalb ist diese "Helfen durch Anstupsen"-Strategie auf lange Sicht die bessere, mit einer fertig hingerotzten Lösung wärst Du zu dieser selbstständig gefundenen(!) Einsicht wahrscheinlich nicht so schnell gekommen.

    Greetz,

    RM

    Nachtrag:

    Hm, ob das von mir vorher verwendete Wort "Hochkommata" wirklich das richtige war, wage ich mitlerweile zu bezweifeln, besser wäre wohl "einfache Anführungszeichen", sofern man unter Hochkomma nicht

    '

    sondern

    `

    versteht.
    Geändert von Rain_maker (27.08.13 um 13:44 Uhr)

Ähnliche Themen

  1. Suse 10.3: 2 Probleme beim security update
    Von Klaus111 im Forum Anwendungen Allgemein, Software
    Antworten: 19
    Letzter Beitrag: 18.11.08, 08:56
  2. Variablen output mit SED
    Von equilibrium im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 10.02.08, 11:32
  3. minimalen string mit sed matchen
    Von xarior im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 05.01.08, 15:38
  4. Seltsames Problem mit XFree86 4.0.1
    Von niggo im Forum X-Konfiguration
    Antworten: 4
    Letzter Beitrag: 22.01.02, 21:59
  5. Problem mit SuSE Linux 7.3 Pro und SuSEfirewall2
    Von outi im Forum Linux als Server
    Antworten: 1
    Letzter Beitrag: 15.12.01, 17:52

Lesezeichen

Berechtigungen

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