Reguläre Ausdrücke

OP Persönliche Seite #590992
Lesenswert?

Hallo zusammen!

Hat mal jemand einen Tipp für mich, wie ich mit sed "nicht druckbare 
Zeichen" aus meiner Datei verbannen kann? Ich bastele jetzt seit stunden 
an einer RE, aber irgendwie habe ich da ein Brett vor'm Kopf!

Eine Zeile sähe so aus:
1
 BOARD test (SERNO: 0000000001) FAILED

...und sollte danach so aussehen:
1
BOARD test (SERNO: 0000000001) FAILED

Danke!
Gast #591035
Lesenswert?

Nicht sed, aber fast:

A tr script to remove all non-printing characters from a file is below. 
Non-printing characters may be invisible, but cause problems with 
printing or sending the file via electronic mail. You run it from Unix 
command prompt, everything on one line:
> tr -d '\001'-'\011''\013''\014''\016'-'\037''\200'-'\377'
   < filein > fileout

von 
http://seismo.berkeley.edu/~rallen/resources/UNIXcmds/sed_tr_cut_od.html
Gast #591040
Lesenswert?

Was sin für dich "nicht druckbare Zeichen"?

Die Sonderzeichen in deinem Beispiel sind ja durchaus noch lesbar.

Ein RE, der alle Zeichen außer den druckbaren ASCII-Zeichen (vom
Leerzeichen bis zur Tilde), den Umlauten und dem Scharf-S akzeptiert,
ist

  [^ -~äöüÄÖÜß]

Der vi-Befehl, um all diese ungewollten Zeichen zu löschen, wäre
demnach

  :s/[^ -~äöüÄÖÜß]//g
OP Persönliche Seite #591049
Lesenswert?

Danke yalu, das war genau das, was ich gesucht habe.
Wie gesagt - ich hatte nur ein Brett vorm Kopf. Ich starte den sed in 
Windows und habe einfach nur missachtet, dass man dort double-quotes 
statt single-quotes (" statt ') verwenden sollte! Auf die RE war ich 
auch schon gekommen, aber sed hat sich da geweigert - es kam nur 
Schrott. Jetzt hab' ich das grad nochmal gelesen und getestet und schon 
geht's. Mein Aufruf aus der Windows-Commandshell ist jetzt:
1
[21:20:42,53] $ cat ./test/stats/* | sed "s/[^ -~äöüÄÖÜß]//g"

Vielen Dank auch allen anderen, die sich mit meinem 'Problem' 
beschäftigt haben ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren