проверьте ASCII-файл с командой файла сценарием оболочки

С файлом управляют, чтобы я проверил много файлов если они 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 наверняка!, я буду очень довольный видеть это

5
задан 27.10.2010, 01:07

3 ответа

if LC_ALL=C grep -q '[^[:print:][:space:]]' file; then
    echo "file contains non-ascii characters"
else
    echo "file contains ascii characters only"
fi
8
ответ дан 07.12.2019, 17:13

Как насчет...

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/' для любого типа текста.

1
ответ дан 07.12.2019, 17:13

Так как Вы анализируете вывод с кодом, я предложил бы использовать -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/.

0
ответ дан 07.12.2019, 17:13

Теги

Похожие вопросы