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.

unix  shell 

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.



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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.