So überprüfen Sie, ob die Datei eine Stückliste im utf-8-Text enthält

18

Wie kann ich überprüfen, ob in einer utf-8-Textdatei eine Stückliste von der Befehlszeile aus vorhanden ist?

fileBefehl zeigt mir UTF-8 Unicode text.

Aber ich weiß nicht, dass die Datei keine Stückliste enthält.

Ich benutze Ubuntu 12.04.

Eisen und Sand
quelle
Beachten Sie, dass UTF-8 keine Stückliste enthält: Dies ist eine Funktion von UTF-16. Eine UTF-8-Datei beginnt möglicherweise mit dem Zeichen U + FEFF, ist in diesem Fall jedoch ein Leerzeichen mit der Breite Null.
Gilles 'SO- hör auf böse zu sein'

Antworten:

29

filewird Ihnen sagen, ob es eine Stückliste gibt. Sie können testen:

$ /usr/bin/printf "\ufeff...\n" | file -
/dev/stdin: UTF-8 Unicode (with BOM) text

Hinweis: Laut fileChangelog gab es diese Funktion bereits im Jahr 2007. Dies sollte also auf jedem aktuellen Computer funktionieren.

vinc17
quelle
1
Danke für die Antwort. Meine fileVersion ist file-5.09und das Ergebnis war /dev/stdin: ASCII text. Kommt es auf die Version an file?
Eisen und
@ Tetsu habe ich mit file5.04 (Debian Squeeze) getestet und es war OK. Auch im Jahr 2007 laut Changelog (nicht getestet). Aber du kannst den Test machen, den ich in meiner Antwort gegeben habe.
Vinc17
Ich habe gerade language-pack-jaaus apt, dann ist dein Beispiel perfekt funktioniert. Danke für Ihre Hilfe!
Eisen und
4

Wenn Sie es ausführen stat fileName, sollten Sie genau die drei Zeichen geben. Als ich die Datei im Editor öffnete, konnte ich nichts sehen. Als ich bemerkte, dass die Dateigröße 3 war, wurde mir klar, dass es eine Stückliste gibt.

Auch der Beitrag hier war in meinem Fall hilfreich.

hexdump -n 3 -C 2.txt
00000000 ef bb bf
ef bb bf // YES
akshita007
quelle