Zeilen separieren

P

potzkoten

Grünschnabel
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
 
Code:
awk '{if ($1 == "Incoming:12") ++Counter; printf ("%s\n",$0) >"file_"Counter;}' test.text
funktioniert bei meinem Test.
 
Code:
awk '{if ($1 == "Incoming:12") ++Counter; printf ("%s\n",$0) >"file_"Counter;}' test.text
funktioniert bei meinem Test.

Danke für die Hilfe. habs versucht aber bei mir wird die eingangsdatei nocheinmal erzeugt und nicht in 3 dateien aufgeteilt
 
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
 
Zuletzt bearbeitet von einem Moderator:
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'?
 

Ähnliche Themen

Mit AWK verschiedene Felder verschiedener Zeilen vergleichen

Problem mit SATA

Creative Labs SoundBlaster Audigy 2 ZS unter Debian / Kernel 3.16

CSV Datei mit sed manipulieren/optimieren/ergänzen

Datum innerhalb einer Datei wandeln dd.mm.jjjj auf jjj-mm-dd

Zurück
Oben