Costumo usar o lesspager para visualizar arquivos de log. Normalmente eu uso less -Fpara acompanhar o progresso do log à la tail.
No entanto, alguns arquivos de log usam caracteres nacionais em uma codificação não padrão (latino-1, enquanto o sistema usa UTF-8). Obviamente, eles não serão exibidos corretamente.
Como posso visualizar esses arquivos less?
As únicas soluções que encontrei:
- Corrija a codificação do arquivo (
recodeouiconv). Isso não funciona enquanto o arquivo ainda está sendo gravado, portanto, não me permite usarless -F. Além disso, destrói o registro de data e hora original dos arquivos de log, o que é ruim do ponto de vista da auditoria. - Use um cano (
recode latin1... |less). Funciona para arquivos em andamento, mas infelizmenteless -Fnão parece funcionar (ele simplesmente não é atualizado; acredito que orecodeprocesso é encerrado após a conclusão).
Alguma solução que me permita "arrastar" um arquivo de log e ainda mostrar caracteres nacionais corretamente?
lesssuporta a chamada de um pré-processador. No entanto, até onde eu sei, o pré-processador lê o arquivo de entrada e cria um novo arquivo para less, portanto, isso não funcionaria less -F.
man lessque existe um pré-processador que você pode definir para corrigir sua codificação.