Zeilen separieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von potzkoten, 15.05.2012.

  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. 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...
  2. 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...
  3. 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...
  4. .cfg Datei Analysieren und Zeilen Stellenweise abändern

    .cfg Datei Analysieren und Zeilen Stellenweise abändern: Hallo allesamt :) ich hab ein kleines Problem. Ich will mittels eines Shell Skriptes in einer Datei die Namensgebung einiger Geräte ändern. Ich...
  5. Script um bestimme Zeilen einer Datei auszulesen

    Script um bestimme Zeilen einer Datei auszulesen: Hallo, ich habe u.g Textfile. Daraus möchte ich für jeden Block (Beginnend mit id) eine Zeile mit der id, dem namen und den 2-4 WWPN in eine...