freeX: Tips & Tricks

Die ausschließlichen Vertriebsrechte an diesem Artikel liegen beim Computer- & Literaturverlag (C&L). Der Artikel darf nicht kopiert oder gar erneut in einer Zeitschrift oder einem Buch veröffentlicht werden ohne vorherige Erlaubnis von C&L. Der Verlag gestattet freundlicherweise die Veröffentlichung auf diesen Seiten. Wer öfter auf diesen Hinweis trifft, sollte sich überlegen, die Zeitschrift freeX zu abonnieren.

Nullbytes entfernen

Bestimmte Zeichen aus Dateien zu löschen, ist gar keine schwere Aufgabe, sollte man meinen. In der letzten Ausgabe der freeX wurde bereits das Programm »tr« vorgestellt, das mit dem Parameter »-d« die angegebenen Zeichen aus dem Datenstrom löscht. Problematisch wird es jedoch, wenn es sich bei den zu löschenden Zeichen nicht um Buchstaben oder Ziffern handelt, sondern um Zeichen, die man schlecht eingeben kann, wie zum Beispiel dem Nullzeichen (ASCII-Wert 0).

In solchen Fällen müssen die zu löschenden Zeichen mit ihrem Oktalwert angegeben werden. Das Programm »tr« interpretiert wandelt eine Oktalzahl in das korrespondierende Zeichen um, wenn diese als »\0oo« angegeben wird. Das Nullzeichen wird demnach mit »\0« angegeben.

Beim Zusammenstellen der Kommandozeile muß allerdings darauf geachtet werden, daß der Backslash in den meisten Shells ebenfalls eine besondere Bedeutung genießt und ggf. von der Shell selbst interpretiert wird. Um das zu verhindern, muß ihm entweder ein weiterer Backslash vorangestellt werden oder der Ausdruck muß passend zitiert werden (mit einfachen Hochkommas). Somit sind die beiden folgenden Aufrufe äquivalent, die Nullzeichen aus Dateien entfernen:

   tr -d \\0 < datei-in > datei-aus

   tr -d '\0' < datei-in > datei-aus

Martin Schulze
Quelle: freeX 2/03