Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определение типа файлов, как определить? 
:(
    Опции темы
RainMan
Дата 29.12.2004, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.12.2004

Репутация: нет
Всего: нет



Здравствуйте!

Помогите мне пожалуйста с решением вот какой задачи: необходимо определить тип файла.
не тривиальная задача - набираем file <name file> и получаем отчет системы о том что это за файл. все бы хорошо но есть проблемы вот какого плана - на Sparc Solaris - это отчет одного вида на Linux машинах это отчеты другого вида
================================================
<name file> ascii text --> отчет Solaris
<name file> ASCII Text File --> отчет Linux
================================================
(при чем на solaris некоторые типы файлов не определяются (например файл PDF версии 1.4 не поддерживается в Solaris зато поддерживается в Linux)
=============================================================
<name file.pdf> data type --> отчет Solaris
<name file.pdf> Adobe Acrobat File (PDF) v1.4 --> отчет Linux
==============================================================
).

Почитали хелпы по пользоанию комманды file и выяснили что можно подставить так называемый magic файл который и будет транслитировать наши файлы так как мы укажем, то есть указываем опцию
file -m <magic file> <name file> и вроде все будет отлично! (По умолчанию стоит magic файл из определенного места /usr/magic и от туда берется информация о типе файла).

Вроде все просто получается бери да и записывай в свой magic файл все что ты хочешь и определяй! smile вот собственно я и подошел к вопросу - как самому составить этот файл для распознавание своих форматов?
мне конкретно нужны типы PDF и текстовые файлы! (это нужно для того чтобы уйти от стандартного определения файлов и назначить им свой тип)

С PDF более или менее разобрался а вот как понять что мы имеем дело с текстовым файлом? Слышал что это определяется при помощи смещения быйтов или что то в этом роде... как эти смещения узнать и чем заглядывать во внутрь файла???


Извините за столь долгое объяснение... просто хотел чтоб была понятна проблема!

Спасибо
PM MAIL   Вверх
dargaard
Дата 30.12.2004, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 450
Регистрация: 7.5.2004

Репутация: 12
Всего: 25



Так как на солярисе и на линуксе отчеты разного вида почему бы просто всегда не использовать magic фаил линукса?



--------------------
Ты должна сделать добро из зла 
потому что его больше не из чего
сделать. Р.П.Уоррен
PM MAIL WWW ICQ   Вверх
RainMan
Дата 30.12.2004, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.12.2004

Репутация: нет
Всего: нет



Хочется создать универсальный свой magic файл только для PDF и текстовых файлов чтобы парсить уже известную строку отчета (например "PDF file") а эти magic файлы имеют тенденцию меняться и подстраиваться под другую методологию опять придется...

вот пример своего magic файла для определения всех версий PDF

#this string for all version PDF formats
0 string %PDF PDF file

0 - означает начало файла
string - тип считаемых данных
%PDF - собственно сигнатура файла PDF (она у всех стандартная)
PDF file - описание данного файла (собственно то что и идет в отчет об выполнении кооманды file)


Как составить такую же строчку только для текстовых файлов?
там точно знаю нужно дейстовать через какое то смещение...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0833 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.