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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.