Arquivo de texto com aparência normal, detectado pelo arquivo como texto do programa ASCII Pascal

7

Eu tenho um arquivo de texto "normal" (contém sentenças em inglês) que está sendo detectado pelo comando file como ASCII Pascal program text .

Como o texto do programa Pascal se diferencia do texto em inglês ASCII normal?

eu fiz head -10 file > tmp

file tmp ainda mostra Pascal . tmp quando aberto no VI e :set list

HELEN'S BABIES$
$
With some account of their ways, innocent, crafty, angelic, impish,$
witching and impulsive; also a partial record of their actions during$
ten days of their existence$
$
By JOHN HABBERTON$
$
$
$

Saída de head file | od -c

0000000   H   E   L   E   N   '   S       B   A   B   I   E   S  \n  \n
0000020   W   i   t   h       s   o   m   e       a   c   c   o   u   n
0000040   t       o   f       t   h   e   i   r       w   a   y   s   ,
0000060       i   n   n   o   c   e   n   t   ,       c   r   a   f   t
0000100   y   ,       a   n   g   e   l   i   c   ,       i   m   p   i
0000120   s   h   ,  \n   w   i   t   c   h   i   n   g       a   n   d
0000140       i   m   p   u   l   s   i   v   e   ;       a   l   s   o
0000160       a       p   a   r   t   i   a   l       r   e   c   o   r
0000200   d       o   f       t   h   e   i   r       a   c   t   i   o
0000220   n   s       d   u   r   i   n   g  \n   t   e   n       d   a
0000240   y   s       o   f       t   h   e   i   r       e   x   i   s
0000260   t   e   n   c   e  \n  \n   B   y       J   O   H   N       H
0000300   A   B   B   E   R   T   O   N  \n  \n  \n  \n
0000314

Arquivo enviado aqui: link

Estou em CentOS release 6.5 , file versão 5.04

Existe algo na quarta linha. Remover da quarta linha em diante detecta-o apenas como arquivo de texto

    
por user13107 01.07.2014 / 16:10

1 resposta

7

Eu consegui reproduzir isso no OS X 10.6.8 e no OpenBSD 5.5-current.

Imprimindo informações de depuração usando file -D tmp , seu arquivo de texto falha aproximadamente em 2000 testes antes de file(1) reconhecer a palavra-chave Pascal record e decide que deve ser um texto do programa Pascal.

Um exemplo de trabalho mínimo pode ser obtido da seguinte forma:

$ echo record > test
$ file test
test: ASCII Pascal program text

Após várias heurísticas, apenas o "terceiro e último conjunto de testes, baseado em suposições" em ascmagic.c se aplica. Esses testes reconhecem "tipos de arquivos que conhecemos baseados em palavras-chave que podem aparecer em qualquer parte do arquivo". Portanto, alterações mínimas no arquivo resultam na identificação correta como ASCII English text , por exemplo, alterando their para the na terceira linha.

    
por 02.07.2014 / 07:35

Tags