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. 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 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.
     
  4. #3 Gast123, 15.05.2012
    Gast123

    Gast123 Guest

  5. #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
     
  6. #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
     
  7. #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'?
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Zeilen separieren

Die Seite wird geladen...

Zeilen separieren - Ähnliche Themen

  1. 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...
  2. 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...
  3. 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...
  4. 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...
  5. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...