Jak długo trwa uniksowe polecenie „plik”?

16

Gdy przekazujesz plik tekstowy do filepolecenia Unix , może ci powiedzieć coś takiego:

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

Czy ktoś może mi powiedzieć minimalną liczbę znaków, które musi zawierać linia, aby uznać ją za bardzo długą ? Strony podręcznika nic nie mówią o tym i nie chcę przeszukiwać kodu źródłowego. Jeśli ktoś może mi powiedzieć, jak umieścić to pytanie w zapytaniu Google, które nie zwraca miliarda wyników, z których prawie wszystkie są nieistotne, również byłbym szczęśliwy.


źródło
3
Głosuj, aby przejść do superużytkownika z powodu niechęci do przeszukiwania kodu źródłowego.
Greg Hewgill
Macie rację - następnym razem przeszukam kod źródłowy. W każdym razie dzięki!

Odpowiedzi:

23

Z ascmagic.cw źródłowym pakiecie plików na 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')

Wydaje się, że linia musi zawierać więcej niż 300 znaków, aby można ją było uznać za „bardzo długą”.

BastiBen
źródło
7

Ponad 300 znaków, zgodnie z wierszami 52 i 214-215 w ascmagic.c w kodzie źródłowym.

Kod źródłowy można znaleźć tutaj (link pobrany ze strony podręcznika użytkownika Debiana dla file): ftp://ftp.astron.com/pub/file/

Emil Vikström
źródło
7

Brute force (plus to jest program, prawda? Więc wiąże się to z programowaniem?):

$ 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
Wstrzymano do odwołania.
źródło
2

Linia jest uważana za długą, jeśli ma więcej niż 300 znaków.

Andrew McGregor
źródło