Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Mit Shellscript Textdatei aufsplitten

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
monparnas
Gast





BeitragVerfasst am: 29. Apr 2011 15:09   Titel: Mit Shellscript Textdatei aufsplitten

Salut

ich habe ein Textfile, in dem 3 verschiedene Messwerte (Strom = I, Spannung = U, Frequenz= F) wie folgt (mit CR/LF am Ende) abgelegt sind:

I <wert> <timestamp>
F <wert> <timestamp>
U <wert> <timestamp>

Die Zeilen kommen über eine serielle Schnittstelle und werden in eine Datei geschrieben. Die Reihenfolge der Zeilen (I, U, F) ist beliebig, da sie mit verschiedenen Abtastraten gemessen werden.

Ich möchte nun die Datei mit den vielen I, F und U Zeilen auseinander nehmen und 3 Files erstellen: eines mit allen Zeilen die mit I beginnen, ein File für alle Zeilen mit F usw.

Ich könnte das in C programmieren, aber gibts vieleicht eine ganz einfache Möglichkeit aus der Shell?

Habt vielen Dank,


monparnas
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 30. Apr 2011 8:55   Titel:

Simpelste Variante:
Code:

$ grep <Input >Strom '^I' ; grep <Input >Spannung '^U'; grep <Input >Frequenz '^F'

Input muss dabei aber eine reguläre Datei sein, da die Eingabe dreimal gelesen werden muss, um alle drei Patterns zu erwischen.

Will man mehrere Ausgabedateien auf einen Schlag erzeugen, geht das z.B. mit einem Shellskript:
Code:

#!/usr/bin/bash
while read TYPE VALUE TIMESTAMP DUMMY
do
  echo $TYPE $VALUE $TIMESTAMP >Output.$TYPE
done

Aufruf mit "./MeinSkript </dev/ttyS0" oder ähnlich.
Das kann man natürlich noch beliebig weiter ausfeilen.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

monparnas
Gast





BeitragVerfasst am: 02. Mai 2011 10:21   Titel:

Vielen Dank für Deine Vorschläge.

Bei der Shellskriptlösung musste ich noch eine kleine Korrektur anbringen:

Code:

[..]
echo $TYPE $VALUE $TIMESTAMP >>Output.$TYPE
[..]


es bedarf eines >>, sonst steht nur jeweils die letzte Zeile drin.

Vielen Dank!!
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy