Zeilen separieren

Diskutiere Zeilen separieren im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, Ich bearbeite eine Textdatei in der 3 unterschiedliche Datensätze zusammengefasst sind. Diese werden jeweils durch "Incoming:12"...

  1. #1 potzkoten, 15.05.2012
    potzkoten

    potzkoten Grünschnabel

    Dabei seit:
    08.06.2011
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo,
    Ich bearbeite eine Textdatei in der 3 unterschiedliche Datensätze zusammengefasst sind. Diese werden jeweils durch "Incoming:12" voneinander getrennt:

    Code:
    Incoming:12
    12   20   13  14
    13   17   14  10
    12   01   28  12
    Incoming:12
    17   12   12   12
    24   12   01   03
    Incoming:12
    12   18   21   81
    17   01   13   04
    
    Ich würde gerne die 3 Datensätze in 3 unterschiedliche Dateien abspeichern. Hat jemand ne idee?

    Gruss
     
  2. #2 tgruene, 15.05.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Code:
    awk '{if ($1 == "Incoming:12") ++Counter; printf ("%s\n",$0) >"file_"Counter;}' test.text 
    funktioniert bei meinem Test.
     
  3. #3 Gast123, 15.05.2012
    Gast123

    Gast123 Guest

  4. #4 potzkoten, 15.05.2012
    potzkoten

    potzkoten Grünschnabel

    Dabei seit:
    08.06.2011
    Beiträge:
    9
    Zustimmungen:
    0
    Danke für die Hilfe. habs versucht aber bei mir wird die eingangsdatei nocheinmal erzeugt und nicht in 3 dateien aufgeteilt
     
  5. #5 Gast123, 15.05.2012
    Zuletzt von einem Moderator bearbeitet: 15.05.2012
    Gast123

    Gast123 Guest

    Sei separate.sh in $PWD ausführbar mit
    Code:
    #! /bin/bash
    
    MATCH=$1
    FILE=$2
    COUNTER=0
    
    while read LINE; do
    	if [ "$LINE" == "$MATCH" ]; then
    		COUNTER=$(($COUNTER+1))
    	fi
    	echo "$LINE" >> $FILE-$COUNTER
    done < $FILE
    Und dein Datensatz in der Datei test, so
    Code:
    ./separate.sh Incoming:12 test
     
  6. #6 tgruene, 16.05.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Welches 'awk' hast Du denn (awk -V)? Ich habe GNU awk 4.0.1 benutzt, und das obige Konstrukt mit der Umleitung im Manual gefunden. Hast Du den Befehl mit cut-and-paste uebertragen? Sonst hast Du wahrscheinlich doch eine andere Version bzw. nicht GNU awk benutzt. Was meinst Du mit 'die Eingangsdatei wird nochmals erzeugt'?
     
Thema:

Zeilen separieren

Die Seite wird geladen...

Zeilen separieren - Ähnliche Themen

  1. sed am Zeilenende einfügen

    sed am Zeilenende einfügen: Hallo Zusammen, ich möchte in eine ,txt file an jede Zeile ein: /index.php anfügen. Wie stelle ich das an ? habe folgendes versucht : sed 's/$/...
  2. Summe von Zahlen in einer Zeilen bilden

    Summe von Zahlen in einer Zeilen bilden: Auf ein Neues... Ich komme bei folgender Problematik nicht weiter: Ich habe eine Datei (zahlen.txt), die ich einlese mit folgenden Daten: 111 222...
  3. Bestimmte Zeilen einer Spalte addieren

    Bestimmte Zeilen einer Spalte addieren: Hallo, würde mich über Hilfe in Form eines Unix-Befehls oder AWK bei folgendem Problem freuen: Ich habe eine Textdatei, in der Werte drin sind in...
  4. 2 Zeilen aus einer txt auslesen

    2 Zeilen aus einer txt auslesen: Hallo Leute, ich habe eine Datei die immer aus zwei zusammenhängenden Zeilen besteht, als Beispiel: DE0006231004 # 15,04 Infineon DE0005785604...
  5. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...