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

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

Кажется, file нельзя доверять все время.

Кажется возможным, что конкретный файл может быть обнаружен как имеющий encoding/format1 и encoding/format2 . file говорит мне, что это encoding/format1 , но мне нужно проверить, удовлетворяет ли она также ограничениям encoding/format2 .

  • Есть ли способ сделать это?
  • Есть ли способ, которым я могу спросить «Проверьте, соответствует ли этот файл правилам английского текста ASCII (или какой-либо другой кодировки )», и ответ будет «да» или «нет»?

  • Более сложная команда файлов для глубокого контроля?
  • 2 Solutions collect form web for “Тестирование для определенного формата файла”

    Возможно, вы можете использовать опцию --keep-going ( -k ) file . Он записывает больше подходящих форматов.

    Связанное справочное описание этой опции:

    Не останавливайтесь на первом матче, продолжайте движение. В последующих матчах будет добавлена ​​строка '\ 012-'. (Если вы хотите использовать новую строку, см. Параметр -r.) Сначала начинается волшебный паттерн с наивысшей силой (см. Параметр -l).

    Отвечаю только на ваш второй вопрос, поскольку jofel уже ответил первым .

    • Есть ли способ, которым я могу спросить «Проверьте, соответствует ли этот файл правилам английского текста ASCII (или какой-либо другой кодировки)», и ответ будет «да» или «нет»?

    См. -e / --exclude . Из file(1) :

    -e, –exclude testname

    Исключите тест, названный в имени testname, из списка тестов, выполненных для определения типа файла.

    […]

    • soft Consults magic files

    Эти волшебные файлы отвечают за отчет Pascal, поэтому -e soft должно быть достаточно. Вы также можете попробовать исключить другие тесты из этого списка, если вы оставите ascii включенным.

    Для теста «да / нет» в сочетании с -b («короткий», т. --mime-encoding Без имени файла) и « --mime-encoding , выводится только кодировка. Затем это простое сравнение строк:

     if [ "$(file -b --mime-encoding -e soft $file)" == "us-ascii" ] ; then echo yes else echo no fi 
    Interesting Posts

    Ужасный рендеринг шрифтов WM (тонкий)

    Есть ли способ освободить память?

    генерировать ссылки страниц с добавочной переменной

    Может кто-нибудь объяснить это странное поведение ПП?

    Правильно ли использовать определенные специальные символы при именах имен файлов в Linux?

    Можно ли установить 32-разрядный Linux на виртуальный компьютер на 64-битной системе Windows?

    Как запустить скрипт на удаленной машине с помощью команды экрана и ssh?

    Двойные мониторы на взлом хруста

    Получите новейший gcc для debian?

    pepperflashplugin-nonfree: ERROR: не удалось получить информацию о статусе из google: W: для следующих идентификаторов ключей нет открытого ключа

    Шестнадцатеричные коды для комбинаций входных ключей

    Как установить графические возможности в CoreOs?

    Что использует триллионы inodes на моем почти пустом сервере?

    Символы на / dev / ttyUSB * через udev

    Ограничивает ли OpenBSD количество дескрипторов файлов?

    Linux и Unix - лучшая ОС в мире.