AWK-Befehl über 2 Zeilen Text

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Chib, 13.08.2007.

  1. Chib

    Chib Jungspund

    Dabei seit:
    31.05.2007
    Beiträge:
    14
    Zustimmungen:
    0
    Hallo

    Ich muss den Folgenden Text :

    Code:
     Test in Zustand new 
        1111    2000-01-30 06:15:13 
    in

    Code:
    Test in Zustand new     1111    2000-01-30 06:15:13 
    umwandeln. Von diesen Zeilen gibt es tausende. Dies sollte natürlich mit awk gehen. Doch irgenwie will es nicht so recht klappen, da der Text auf 2 Zeilen verteilt ist. Ich versuche durch awk jedes einzelne Wort in eine Spalte zu legen und diese dann mittels printf befehl wieder auszugeben in sinn von s% s% s% usw..

    könnt ihr mir da weiterhelfen?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 element, 13.08.2007
    element

    element Guest

    hab zwar kene ahnung von awk(auch nich was das is) aba ich nehm mal an es ist in etwa einen programmiersprache. sind diese bedingungen erfüllt würder ich folgendes machen:
    2 zeilen in einen String einlesen und dort dann nach dem enter suchen lassen(bei php \n) und dies durch nix("") ersetzen.
    dann gibst du den string mit printf aus
    mfg element
     
  4. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    ich nehme folgendes txt file format an:

    foo.txt:
    dann nehmen wir mal sed:
    Geht! Heureka!
     
  5. #4 Chib, 13.08.2007
    Zuletzt bearbeitet: 13.08.2007
    Chib

    Chib Jungspund

    Dabei seit:
    31.05.2007
    Beiträge:
    14
    Zustimmungen:
    0
    @smg: BIG thx!

    es hat geklappt ;)
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    so sry für doppelpost:

    Zwar funktioniert der Script von smg perfekt. Doch nun hab ich festgestellt das es noch andere Formen gibt vom meiner Daten:

    Code:
     Test in Zustand new 
        1111    2000-01-30 06:15:13
        1111    2000-01-30 06:15:13
        1111    2000-01-30 06:15:13
        1111    2000-01-30 06:15:13
    Nun sollten alle darunter kommende Einträge oben bei Zustand new eingeschoben werden.

    so sollte es dann aussehen:
    Code:
    Test in Zustand new   1111    2000-01-30 06:15:13  1111    2000-01-30 06:15:13  1111   2000-01-30 06:15:13 1111    2000-01-30 06:15:13
     
  6. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    Primitive aber schnelle Lösung:
     
  7. Chib

    Chib Jungspund

    Dabei seit:
    31.05.2007
    Beiträge:
    14
    Zustimmungen:
    0
    das wäre einfach....das problem die anzahl der darunter stehenden Zeilen ist variabel, dass heisst das es mal 2mal kommt und das andere mal vieleicht 5 mal.
     
  8. #7 smg, 13.08.2007
    Zuletzt bearbeitet: 13.08.2007
    smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    achso :) geht auch mit nem sed loop, mom!

    Sowas?

     
  9. Chib

    Chib Jungspund

    Dabei seit:
    31.05.2007
    Beiträge:
    14
    Zustimmungen:
    0
    Hm ne geht nicht :/
     
  10. #9 smg, 13.08.2007
    Zuletzt bearbeitet: 13.08.2007
    smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    Schade, bei mir hatte es geklappt, was macht er?
    Kannst du mal deine txt datei Ausschnittsweise wo hochladen?
    Eventuell bei nopaste.info oder ähnlichen nopaste Diensten?
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Code:
    Test in Zustand new
        1111 2000-01-30 06.15.13
        2222 2000-01-31 06.13.11
    Test in Zustand new
        1111 2000-01-30 06.15.13
        2222 2000-01-31 06.13.11
        1111 2000-01-30 06.15.13
        2222 2000-01-31 06.13.11
    Test in Zustand new
        1111 2000-01-30 06.15.13
        2222 2000-01-31 06.13.11
        2222 2000-01-31 06.13.11
    Test in Zustand new
        1111 2000-01-30 06.15.13
        1111 2000-01-30 06.15.13
        2222 2000-01-31 06.13.11
        2222 2000-01-31 06.13.11
        2222 2000-01-31 06.13.11
        2222 2000-01-31 06.13.11
    
     
  11. Chib

    Chib Jungspund

    Dabei seit:
    31.05.2007
    Beiträge:
    14
    Zustimmungen:
    0
    ich werde es morgen mal etwas hochladen...heute muss ich weg

    aber ich bedanke mich herzlich bei dir smg für die Mühe ! :)
     
  12. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/

    np viel spass
     
  13. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  14. #12 lonestar, 14.08.2007
    lonestar

    lonestar Grünschnabel

    Dabei seit:
    20.05.2007
    Beiträge:
    7
    Zustimmungen:
    0
    Nur der Vollständigkeit halber, damit auch nochmal etwas über awk vorkommt
    Code:
    BEGIN { myline="" }
    
    /^Test/		{ printf "%s\n", myline; myline=$0 }
    /\ *[0-9]+/	{ myline=myline $0 }
    
    END { printf myline }
    
    Als script.awk speichern und mit awk -f script.awk data.txt aufrufen, wobei data.txt die zu formatierenden Daten enthält.
    Ist bestimmt nicht perfekt, tut es aber schon ganz gut.
    Danke für die nette Anregung, sich mal wieder mit einem solchen Klassiker zu beschäftigen!
     
  15. Chib

    Chib Jungspund

    Dabei seit:
    31.05.2007
    Beiträge:
    14
    Zustimmungen:
    0
    die verison von smg hat geklappt....es lag daran das ich eine late verison von sed verwendete

    das problem ist nun definitiv gelöst
     
Thema:

AWK-Befehl über 2 Zeilen Text

Die Seite wird geladen...

AWK-Befehl über 2 Zeilen Text - Ähnliche Themen

  1. Wiederherstellen von überschriebenen Dokumenten auf debian samba

    Wiederherstellen von überschriebenen Dokumenten auf debian samba: Ich habe ein Problem. Vor Kurzem hat der Trojaner cryptologer einen Schaden eingerichtet. Glücklicherweise gab es eine Sicherung auf...
  2. Samba4 AD DC über VPN

    Samba4 AD DC über VPN: Ich verwende momentan einen Debian 8 root Server bei strato. Ein VPN i(l2tp/ipsec) ist installiert und der interfacename für die Verbindung ist...
  3. Matthew Garrett über die Sicherheit von Ubuntu Snaps

    Matthew Garrett über die Sicherheit von Ubuntu Snaps: Snaps als neues Paketformat sind eines der Highlights von Ubuntu 16.04. Linux-Entwickler Matthew Garrett hat sie unter dem Gesichtspunt der...
  4. Lets Encrypt geht in den Regelbetrieb über

    Lets Encrypt geht in den Regelbetrieb über: Die Linux Foundation teilt mit, dass das unter ihrem Schirm stehende Projekt Let's Encrypt die Beta-Phase abschließt und den Regelbetrieb...
  5. Canonical berichtet über die Verbreitung von Ubuntu

    Canonical berichtet über die Verbreitung von Ubuntu: Unter dem Titel »Ubuntu is everywhere« berichtet Canonical über Anwenderzahlen und Verbreitung am Desktop, bei Mobilgeräten und in der Cloud....