Как долго длится команда Unix 'file'?

16

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

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

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


источник
3
Проголосуйте, чтобы перейти к суперпользователю из-за нежелания искать исходный код.
Грег Хьюгилл
У вас, ребята, есть смысл - я буду искать исходный код в следующий раз. В любом случае спасибо!

Ответы:

23

Из 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 символов, чтобы считаться «очень длинной».

BastiBen
источник
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 символов.

Эндрю МакГрегор
источник