Нормальный текстовый файл, обнаруженный файлом как текст программы ASCII Pascal

У меня есть «нормальный» текстовый файл (содержит английские предложения), который обнаруживается командой file как ASCII Pascal program text .

Как текст программы Pascal отличается от обычного текста на английском языке ASCII?

Я сделал head -10 file > tmp

file tmp все еще показывает Pascal . tmp при открытии в VI и :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$ $ $ $ 

Вывод head file | od -c head file | od -c

 0000000 HELEN ' SBABIES \n \n 0000020 W ithsomeaccoun 0000040 toftheirways , 0000060 innocent , craft 0000100 y , angelic , impi 0000120 sh , \nwitchingand 0000140 impulsive ; also 0000160 apartialrecor 0000200 doftheiractio 0000220 nsduring \ntenda 0000240 ysoftheirexis 0000260 tence \n \n B y JOHNH 0000300 ABBERTON \n \n \n \n 0000314 

Загруженный файл: http://www.fileswap.com/dl/L0eCWJTvy/

Я на CentOS release 6.5 , версия file 5.04

В 4-й строке есть что-то. Удаление с 4-й строки далее обнаруживает ее как только текстовый файл

Я смог воспроизвести это как на OS X 10.6.8, так и на OpenBSD 5.5-current.

Распечатывая отладочную информацию с помощью file -D tmp , выясняется, что ваш текстовый файл не прошел примерно 2000 тестов, прежде чем file(1) распознает record ключевого слова Pascal и решает, что это должен быть текст программы Pascal.

Минимальный рабочий пример можно получить следующим образом:

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

После многочисленных эвристик применяется только «третий и последний набор тестов, основанных на жестких предположениях» в ascmagic.c . Эти тесты распознают «типы файлов, которые мы знаем на основе ключевых слов, которые могут появляться в любом месте файла». Поэтому минимальные изменения в вашем файле приводят к правильной идентификации в виде ASCII English text на ASCII English text , например, путем изменения their в третьей строке.