Como posso fazer o tipo de quebra de linha de saída 'file' e codificação para todos os tipos de arquivo?

6

Muitas vezes me encontro na necessidade de verificar a codificação e o tipo de quebra de linha de um arquivo.

O utilitário file parece ser um ajuste perfeito. Infelizmente, não produz a informação desejada para todos os tipos de arquivos. Por exemplo, isso não acontece em .php files.

Por exemplo:

file extra.module.php

extra.module.php: PHP script text

Mas se eu renomear o arquivo para .txt e remover a tag de início do PHP, ele gerará ambos.

file extra.module.txt 

extra.module.txt: UTF-8 Unicode C++ program text, with CRLF line terminators

Eu já olhei para a manpage e posso usar a opção -i para forçar a saída da codificação de caracteres, mas parece não haver nenhuma opção para o tipo de quebra de linha.

Existe uma solução simples para isso sem renomear / alterar o arquivo primeiro?

    
por s1lv3r 17.12.2015 / 17:02

1 resposta

4

Após o comentário de @ don_crissti, acontece que passar um magicfile vazio para file fará com que ele volte para detectar o ASCII padrão.

Então file -m /dev/null extra.module.php fará o truque nesse caso e produzirá o desejado

extra.module.php: UTF-8 Unicode C++ program text, with CRLF line terminators

    
por 17.12.2015 / 18:14