15

Когда вы передаете текстовый файл в команду Unix file , он может сказать вам что-то вроде:

input.txt: UTF-8 Unicode English text, with very long lines

Может кто-нибудь сказать мне минимальное количество символов, которое должна содержать строка, чтобы считаться очень длинной? Страницы руководства ничего не говорят об этом, и я не хочу искать исходный код. Если кто-то может сказать мне, как вставить этот вопрос в запрос Google, который не возвращает миллиард результатов, почти все из которых не имеют значения, я тоже был бы счастлив.

4 ответа4

21

Из ascmagic.c в пакете с исходными файлами в Ubuntu:

#include "names.h"

#define MAXLINELEN 300  /* longest sane line length */
#define ISSPC(x) ((x) == ' ' || (x) == '\t' || (x) == '\r' || (x) == '\n' \
          || (x) == 0x85 || (x) == '\f')

Похоже, строка должна содержать более 300 символов, чтобы считаться "очень длинной".

7

Более 300 символов, в соответствии со строками 52 и 214-215 в ascmagic.c в исходном коде.

Исходный код может быть найден здесь (ссылка взята со справочной страницы Debian для file):ftp://ftp.astron.com/pub/file/

7

Грубая сила (плюс это программа, верно? так что это связывает программирование?)

$ for i in {1..301}; do printf "%${i}s" "." | file - | grep very && echo $i; done
/dev/stdin: very short file (no magic)
1
/dev/stdin: ASCII text, with very long lines, with no line terminators
301
2

Строка считается длинной, если в ней более 300 символов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .