Как проверить, является ли файл файлом шрифта

У меня есть несколько тысяч автоматически сохраненных веб-страниц, исходя из разных источников. Многие веб-страницы имеют встроенные шрифты в таких файлах, как * .woff, * .eot, * .ttf и * .svg. Я хотел бы уменьшить их размер, удалив все файлы шрифтов. Как проверить, есть ли файл для шрифтов? Понятно, что я могу найти некоторых с find . -type f -name *woff find . -type f -name *woff . Специально, путаница возможна с * svg-файлами. Файл * svg может быть либо файлом шрифта, например xxxwebfontsxxx.svg, либо может быть идеально информативным изображением.

Если невозможно напрямую проверить файлы, какие расширения следует удалить? Файлы шрифтов, которые я знаю по расширению, это * otf, * ttf, * eot, * woff и некоторые * svg могут быть шрифтами или нет. Сохраняется ли удаление этих первых четырех типов файлов?

One Solution collect form web for “Как проверить, является ли файл файлом шрифта”

Есть команда под названием file которая делает (хорошие, но не всегда совершенные) догадки о типе файла. Один из способов использования этой команды:

 find your_web_pages_directory -type f -name "*.*" -print0 | xargs -0 file | awk 'BEGIN{FS=": +"}$2~/[Ff]ont/{print $1}' | xargs rm -- 

Команда find ищет обычные файлы с расширениями (вы можете ограничить это расширение дальше, если хотите), awk программа соответствует угадыванию из предшествующего догадки по file и печатает имя файла, и, наконец, результат удаляется. В зависимости от того, какие файлы у вас есть в «your_web_pages_directory», может быть желательно сначала проверить вывод find | xargs find | xargs прежде чем добавлять элементы awk и rm в конвейер.

Примечание. В коде предполагается, что file будет сообщать обо всем, что угодно, например «Шрифт» или «Шрифт» для желаемых файлов. Если это не настоящая диагностическая строка, вам придется соответствующим образом изменить ее. Проведите несколько тестов в файлах, где вы знаете, что они относятся к типу, который вы ищете.

  • Поиск лицензий на шрифты
  • Используйте разные библиотеки freetype для приложений GTK + и Qt
  • Проблема, когда я использую шрифт webdings в firefox или inkscape
  • Linux и Unix - лучшая ОС в мире.