Ferramenta Unix para gerar os primeiros n caracteres em um arquivo codificado em UTF-8

1

Eu quero imprimir os primeiros 1000 caracteres em um arquivo codificado em UTF-8. Eu sei que a ferramenta head pode imprimir os primeiros n bytes de um arquivo, mas pode cortar um caractere no meio para que eu tenha uma saída distorcida no final.

Eu posso escrever um programa awk para fazer isso, mas posso saber se existe alguma maneira mais simples?

PS. Achei irracional que head e tail não suportem codificação de caracteres (a variável de ambiente LANG), enquanto outras ferramentas como cut , wc , sed e awk todas codificação de caracteres de suporte.

    
por Wu Yongzheng 18.07.2012 / 08:09

1 resposta

0

Não tenho certeza se é mais simples, mas do meu jeito:

cat file | iconv -t UTF-32 | head -c $[1000 *4+4] | iconv -f UTF-32

Isso converte em uma forma de largura fixa de Unicode para que o 1000 sempre represente caracteres inteiros.

    
por 18.07.2012 / 11:57