# Wie Nicht druckbare Zeichen aus Textdatei entfernen?

## 3PO

Hallo Zusammen,

wie kann man denn Sonderzeichen löschen?

Ich habe Dateien die z.B, so ausehen:

 *Quote:*   

> ^[[39;49m
> 
> Hier kommt dann der eigenliche Text....
> 
> Dann gibt es Zeilen, die so enden.^@^@^@^@^@^@^@
> ...

 

Wie kann ich nun das blau geschriebene am besten rauslöschen?

----------

## Finswimmer

tr -d [:cntrl:]

----------

## 3PO

 *Finswimmer wrote:*   

> tr -d [:cntrl:]

 

Das funktioniert leider nicht.  :Sad: 

Damit werden zwar die "^" entfernt, allerdings aber auch alle Zeilenumbrüche und das soll nicht sein.

----------

## sirro

Du kannst bei tr auch selber Sets verschiedener Zeichen zusammensetzen:

```
tr -d '\000-\010\016-037'
```

Die Zahlen sind oktale Werte für die einzelnen Zeichen (siehe man ascii), Bindestriche geben einen Bereich an.

----------

## 3PO

Thx,

das brachte die Lösung:

```
tr -d '\0\033' < test.txt |grep -v "39;49" > test2.txt
```

----------

## 3PO

 *3PO wrote:*   

> Thx,
> 
> das brachte die Lösung:
> 
> ```
> ...

 

Habe es nochmal geändert.

So funktioniert es nun 100%ig.  :Smile: 

```
sed -e "s/\x1b\(\[[0-9;]*m\|(\)//g" -e "s/\x00//g"
```

----------

## toralf

Hätte es Befehl "strings" auch getan ?

----------

## 3PO

 *toralf wrote:*   

> Hätte es Befehl "strings" auch getan ?

 

Vermutlich schon...   :Smile: 

Allerdings hat "strings" mir bei meinen Versuchen immer die Textformatierung durcheinander gebracht. (Leerzeichen, Tabs, Zeilenumbrüche, etc....)

----------

## toralf

 *3PO wrote:*   

> Allerdings hat "strings" mir bei meinen Versuchen immer die Textformatierung durcheinander gebracht. (Leerzeichen, Tabs, Zeilenumbrüche, etc....)

 stimmt, also doch lieber tr.

----------

