Ich komprimiere JavaScript-Dateien und der Kompressor beschwert sich darüber, dass meine Dateien 
-Zeichen enthalten.
Wie kann ich nach diesen Zeichen suchen und sie entfernen?
Perl -pi~ -CSD -e 's/^\x{fffe}//' file1.js path/to/file2.js
Ich würde davon ausgehen, dass das Tool beschädigt wird, wenn Sie andere utf-8-Dateien in Ihren Dateien haben. Wenn nicht, kann Ihnen diese Problemumgehung helfen. (Nicht getestet ...)
Bearbeiten : fügte die -CSD
-Option hinzu, wie im Kommentar von tchrist angegeben.
Sie können sie leicht mit vim entfernen. Hier sind die Schritte:
1) Öffnen Sie die Datei in Ihrem Terminal mit vim:
vim file_name
2) Entfernen Sie alle BOM Zeichen:
:set nobomb
3) Speichern Sie die Datei:
:wq
Eine weitere Methode zum Entfernen dieser Zeichen - mit Vim :
vim -b Dateiname
Diese "versteckten" Zeichen sind jetzt sichtbar (<feff>
) und können entfernt werden.
Vielen Dank für die vorherigen Antworten, hier ist eine sed (1) Variante für alle Fälle:
sed '1s/^\xEF\xBB\xBF//'
Unter Unix/Linux:
sed 's/\xEF\xBB\xBF//' < inputfile > outputfile
Unter MacOSX
sed $'s/\xEF\xBB\xBF//' < inputfile > outputfile
Beachten Sie das $ after sed für Mac.
Unter Windows
Es gibt Super Sed eine verbesserte Version von sed. Für Windows ist dies eine eigenständige EXE-Datei, die von der Befehlszeile aus ausgeführt werden soll.
Die Verwendung von tail könnte einfacher sein:
tail --bytes=+4 filename > new_filename
@Tripleees Lösung hat für mich nicht funktioniert. Aber das Ändern der Dateicodierung in ASCII und erneut in UTF-8 hat den Trick :-)
Ich habe dafür vimgrep verwendet
:vim "[\uFEFF]" *
auch normaler vim Suchbefehl
/[\uFEFF]
In Windows können Sie das Dienstprogramm recode aus UnxUtils verwenden.
In Sublime Text können Sie das Highlighter-Paket installieren und dann den regulären Ausdruck in Ihren Benutzereinstellungen anpassen.
Hier habe ich \uFEFF
am Ende der highlighter_regex
-Eigenschaft hinzugefügt.
{
"highlighter_enabled": true,
"highlighter_regex": "(\t+ +)|( +\t+)|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014\uFEFF]|[\t ]+$",
"highlighter_scope_name": "invalid",
"highlighter_max_file_size": 1048576,
"highlighter_delay": 3000
}
Um die Standardpaketeinstellungen zu überschreiben, legen Sie die Datei hier ab:
~/.config/sublime-text-3/Packages/User/highlighter.sublime-settings
Der Befehl 'file' zeigt an, ob die Stückliste vorhanden ist:
Beispiel: 'file myfile.xml' zeigt Folgendes an: "XML 1.0-Dokument, UTF-8-Unicode-Text (mit Stückliste) mit sehr langen Zeilen und CRLF-Zeilenabschlusszeichen"
dos2unix entfernt die Stückliste.
Speichern Sie die Datei ohne Codesignatur.
Ich empfehle die Verwendung von "dos2unix", bitte testen Sie dos2unix ./thefile.js
.
Versuchen Sie gegebenenfalls, so etwas für mehrere Dateien zu verwenden:
for x in $(find . -type f -exec echo {} +); do dos2unix $x ; done
Schöne Grüße.