С файлом управляют, чтобы я проверил много файлов если они ASCII или другой формат
Иногда я добираюсь от команды файла:
file1: ASCII English text
И иногда я получаю другой ответ от команды файла
file2: Non-ISO extended-ASCII English text, with very long lines
Я действительно не уверен, существуют ли другие ответы с другим синтаксисом
Мой вопрос:
Я пишу follwing ksh синтаксис, чтобы проверить, является ли файлом ASCII, но я не уверенный если
следующий синтаксис является оптимальным синтаксисом для проверки формата ASCII?
[[ ` file $some_file | grep –c ASCII ` = 1 ]] && print "you have ascii file for sure"
Если у кого-то есть другое предложение для проверки формата ASCII наверняка!, я буду очень довольный видеть это
Как насчет...
if file -ib "$file" | grep -Eqs '^text/plain(;|$)'; then
echo "It's text/plain."
fi
Я не знаю, насколько распространенный --mime-type
; если это стандартно, использовать
if file -b --mime-type "$file" | grep -qs '^text/plain$'; then
Кроме того, grep -qs '^text/'
для любого типа текста.
Так как Вы анализируете вывод с кодом, я предложил бы использовать -i
опция на file
таким образом, это производит типы MIME вместо этого человечески-благоприятные строки. Вывод типа MIME является более регулярным, и это делает немного легче иметь дело с в коде.
Что касается выходных типов взгляд на файл человека говорит что:
/usr/share/file/magic
Default list of magic numbers
/usr/share/file/magic.mime
Default list of magic numbers, used to output mime types
when the -i option is specified.
Смотрите на те файлы для всех типов MIME, о которых это может сообщить для определения, о каких типах Вы будете заботиться при парсинге вывода от file
. Я подозреваю все, о чем Вы будете заботиться, то, что тип MIME запускается с text/
.