Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 13. Nov 2018 21:14

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 16. Nov 2005 21:10 
Offline
Benutzeravatar

Registriert: 12. Jan 2003 11:32
Beiträge: 93
Hallo

Ein Bash-Problem:

Ich schreibe Daten von der RS232 Schnittstelle mit - auf das sendende Gerät habe ich keinen Einfluss. Leider wird kein explizites Zeichen gesendet, um die Datensätze voneinander zu trennen, sondern eine Zeichenfolge
Code:
\n \n \n
(LF - SPACE - LF - SPACE - LF) - wobei \n entsprechend für LF steht. Ich müsste also mindestens auf zwei Leerzeichen gefolgt von einem LF filtern können - und mit grep krieg ich das nicht hin.

Any Hints?

_________________
mfg, atomical

Jabber: alext@jabber.ccc.de


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16. Nov 2005 23:11 
Offline
prolinux-forum-admin

Registriert: 26. Jun 2004 21:18
Beiträge: 1444
Code:
# cat probe.txt
line 1: \n \n \n 
line 2: \n
line 3: \n \n
line 4: \n \n \n
Code:
# grep -n '\\n \\n \\n' probe.txt
1:line 1: \n \n \n 
4:line 4: \n \n \n 
# :)
MfG, Klopskuchen

_________________
When all else fails, read the instructions .


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17. Nov 2005 7:00 
Offline
Benutzeravatar

Registriert: 12. Jan 2003 11:32
Beiträge: 93
Nicht falsch verstehen - in der Datei taucht kein "\" gefolgt von einem n auf, sondern mal in hex
Code:
0A 20 0A 20 0A
- und danach will ich filtern.

Wenn ich grep zählen lasse, kommt das raus:
Code:
[ alex@phoenix] ~/work/fuba (75G free)% grep -c -n ' ' beispiel.txt
16
[ alex@phoenix] ~/work/fuba (75G free)% grep -c -n '\n' beispiel.txt
2
[ alex@phoenix] ~/work/fuba (75G free)% grep -c -n '\n ' beispiel.txt
1
[ alex@phoenix] ~/work/fuba (75G free)% grep -c -n ' \n' beispiel.txt
0
[ alex@phoenix] ~/work/fuba (75G free)% grep -c -n '\n \n' beispiel.txt
0
Offenbar werden einzig die Leerzeichen richtig gezählt ...

http://www.htw-dresden.de/~s50369/beispiel.txt - die betreffende Stelle liegt am Ende der Datei - zwischen der Reihe "=" und dem "abc" - nach den "=" kann ich nicht filtern, das wär nicht eindeutig.

_________________
mfg, atomical

Jabber: alext@jabber.ccc.de


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17. Nov 2005 19:07 
Offline
Benutzeravatar

Registriert: 12. Jan 2003 11:32
Beiträge: 93
So - mittlerweile habe ich 2 Wege - einen aus dem IRC von hp_tux:
Code:
cat beispiel.txt | tr '\n' 'ö'|sed 's#ö ö ö#Ö#'|tr ö '\n'
trickreich - erst alle LF gegen ö ersetzen, dann die Kombination "ö ö ö" gegen Ö und alle übrigen ö's wieder gegen \n - setzt voraus, das ich zwei Zeichen habe (hier ö und Ö), die nicht im Stream vorkommen.

Die zweite ist ein Perl-Script http://www.mrunix.de/forums/showthread.php?p=189655

_________________
mfg, atomical

Jabber: alext@jabber.ccc.de


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de