Aqui está um script perl que abre arquivos (dados como argumentos de linha de comando) em UTF-16 (endianness detectado via BOM) e conta as linhas.
#! /usr/bin/env perl
use strict;
use warnings;
while (my $file = shift @ARGV) {
my $fh;
if (!open($fh, '<:encoding(UTF-16)', $file)) {
print STDERR "Failed to open [$file]: $!\n";
next;
}
my $count = 0;
$count++ while (<$fh>);
print "$file: $count\n";
close $fh;
}
(morre se a lista de materiais não for compreendida).