Das BOM-Byte in Dateien aufspüren und löschen

Das Byte Order Mark, kurz BOM, kennzeichnet den Anfang einer Datei. Man kann z.B. Dateien UTF8 kodiert mit oder ohne BOM abspeichern. Für alle Yii Projekt Daten ist es ratsam diese ohne BOM in UTF8 zu halten.

Bei der Ausführung von Cronjob Skripten kann es zu Ausgaben des BOM kommen. Der Browser gibt dann die Zeichenkette „ï》?“ für das BOM aus.

In der Konsole ist das Aufspüren von Dateien mit Byte Order Marks mit Hilfe von zwei Zeilen gelöst. Unter Windows7 habe ich mir dafür cygwin installiert.

Als erstes werden alle Dateien im Projektordner durchsucht mit dem Byte Order Mark am Anfang. Wird eine passende Datei gefunden landet der Pfad zur Datei in einer neuen .txt-Datei.

grep -rl $’\xEF\xBB\xBF‘ /home/rootfolder/Yii_Project > file_with_boms.txt

Nun geht es darum die gefundenen Dateien zu bearbeiten. Das BOM soll gelöscht werden damit z.B. die Ausgabe der Sonderzeichen aufhört.

while read l; do sed -i ‚1 s/^\xef\xbb\xbf//‘ $l; done < file_with_boms.txt

Das wars. Done.

Advertisements

Kommentare

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s