Wie lang ist der Unix-Befehl 'file'?

16

Wenn Sie eine Textdatei an den Unix- fileBefehl übergeben, wird Ihnen möglicherweise Folgendes mitgeteilt:

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

Kann mir jemand sagen, wie viele Zeichen eine Zeile mindestens enthalten muss, um als sehr lang zu gelten ? Die Manpages sagen nichts dazu und ich möchte den Quellcode nicht durchsuchen. Wenn mir jemand sagen kann, wie man diese Frage in eine Google-Abfrage einfügt, die keine Milliarden Ergebnisse liefert, von denen fast alle irrelevant sind, würde ich mich auch freuen.


quelle
3
Stimmen Sie ab, um zum Superuser zu wechseln, da Sie den Quellcode nicht durchsuchen möchten.
Greg Hewgill
Ihr habt Recht - ich werde das nächste Mal den Quellcode durchsuchen. Trotzdem danke!

Antworten:

22

Aus ascmagic.cin der Datei Quellcode - Paket auf 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')

Eine Zeile muss anscheinend mehr als 300 Zeichen lang sein, um als "sehr lang" zu gelten.

BastiBen
quelle
7

Über 300 Chacraktoren, laut Zeilen 52 und 214-215 in ascmagic.c im Quellcode.

Den Quellcode finden Sie hier (Link von der Debian-Manpage für file): ftp://ftp.astron.com/pub/file/

Emil Vikström
quelle
7

Brute Force (und das ist doch ein Programm, oder? Das macht es programmierbezogen?):

$ 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
Bis auf weiteres angehalten.
quelle
2

Eine Zeile wird als lang angesehen, wenn sie mehr als 300 Zeichen enthält.

Andrew McGregor
quelle