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.

unix  shell 

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ą”.



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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.