Nicht sicher, dass es einfacher ist, aber dies ist mein Weg:
cat file | iconv -t UTF-32 | head -c $[1000 *4+4] | iconv -f UTF-32
Dies konvertiert in eine Unicode-Form mit fester Breite, so dass der 1000 immer ganze Zeichen darstellt.
Ich möchte die ersten 1000 Zeichen in einer UTF-8-kodierten Datei drucken . Ich weiß, dass das Head- Tool die ersten n Bytes einer Datei drucken kann, aber es kann ein Zeichen in der Mitte schneiden, sodass ich am Ende eine verstümmelte Ausgabe bekomme.
Ich kann dazu ein awk-Programm schreiben, aber kann ich wissen, ob es einen einfacheren Weg gibt?
PS. Ich fand es unangemessen, dass Kopf und Schwanz die Zeichenkodierung nicht unterstützen (die Umgebungsvariable LANG), während andere Tools wie cut, wc, sed und awk alle die Zeichenkodierung unterstützen.
Nicht sicher, dass es einfacher ist, aber dies ist mein Weg:
cat file | iconv -t UTF-32 | head -c $[1000 *4+4] | iconv -f UTF-32
Dies konvertiert in eine Unicode-Form mit fester Breite, so dass der 1000 immer ganze Zeichen darstellt.