O tipo char
em C é um byte, mas é destinado a caracteres ASCII; existem codificações de largura variável como UTF-8, que podem ocupar muitos bytes por caractere. wc
usa a função mbrtowc(3)
para decodificar sequências multibyte, dependendo da localidade definida pela variável de ambiente LC_CTYPE
. Se você definir a localidade corretamente, deverá obter o mesmo resultado para todos os casos. Por exemplo:
qdii@nomada ~/Documents $ LC_CTYPE="C" wc -m sentences.csv
102990983 sentences.csv