Ein genialer Ansatz: BOM in UTF-8-Dateien finden
Die Notwendigkeit, ein Verzeichnis nach UTF-8-Dateien mit Byte-Reihenfolge zu durchsuchen Zu Debugging-Zwecken entstehen Markierungen (BOMs). Während Shell-Skripte eine unkomplizierte Lösung bieten, können sie mit Unvollkommenheiten wie unleserlichen Einzeilern oder Empfindlichkeit gegenüber Zeilenumbrüchen in Dateinamen zu kämpfen haben.
Eine verfeinerte Lösung
Auf der Suche nach mehr Betrachten Sie für einen eleganten Ansatz diesen prägnanten Befehl:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;
Dieser Befehl nutzt das Dienstprogramm „find“, um das angegebene Verzeichnis zu durchsuchen. Anschließend werden Dateien vom Typ „f“ (reguläre Dateien) gefiltert. Für jede qualifizierte Datei wird der „sed“-Editor aufgerufen, der eine Ersetzung in der ersten Zeile durchführt. Die Zeichenfolge ^xEFxBBxBF beginnt mit einer Steuersequenz, die den Beginn einer Zeile angibt, und entspricht den drei Zeichen, aus denen die Stückliste besteht: EF BB BF. Durch Ersetzen durch eine leere Zeichenfolge wird die Stückliste effektiv gelöscht.
Ein Vorsichtshinweis
Benutzer werden darauf hingewiesen, dass dieser Vorgang destruktiv ist. Binärdateien, die diese Zeichen enthalten, werden geändert. Um sich vor unbeabsichtigten Änderungen zu schützen, verwenden Sie stattdessen diesen Befehl:
grep -rl $'\xEF\xBB\xBF' .
Dieser geänderte Befehl bleibt der Mission von „grep“ des Mustervergleichs treu. Es behält die Fähigkeit bei, Dateien mit Stücklisten zu identifizieren, ohne Schaden anzurichten.
Das obige ist der detaillierte Inhalt vonWie finde und entferne ich Byte Order Marks (BOM) in UTF-8-Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!