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

Это продолжение нормального текстового файла, обнаруженного файлом в виде текста программы 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

    Как защитить / защитить журналы журналов log_input / log_output «sudo»?

    Проблема с установкой Fedora 26: «Ошибка проверки конфигурации хранилища» (с использованием Live USB)

    Как получить несколько строк из файла с помощью регулярных выражений?

    Сетевая проблема класса Arch Linux

    Управление iptables для конкретных ips и портов

    Удаление обратных косых черт из текстового файла

    загружать только первые несколько байтов исходной страницы

    Поддержание единой бинарной системы в дистрибутивах Debian

    Можно ли просмотреть список имен файлов zip-файла, который находится внутри другого zip-файла?

    Хвост – последний файл журнала

    Как я могу получить максимально развернутые окна, чтобы не скрываться за панелью меню на основном внешнем?

    iMac не будет отключен нормально и останется на круге загрузки навсегда

    Список протоколов файлов и каталогов на du показывает только размеры каталогов?

    Разница между ~ / .profile и ~ / .bash_profile

    Перезапись строки в оболочке unix после печати

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