Datei mit "Datei" in einem Shell-Skript identifizieren?

463
camperdave

Ich schreibe gerade ein Shell-Skript, das in der Lage ist, den tatsächlichen Dateityp (nicht deren Erweiterungen) mit dem Unix-Dienstprogramm "file" zu identifizieren. Dieses Tool gibt jedoch für Menschen lesbaren Text aus, der möglicherweise etwas schwer zu analysieren ist. Gibt es eine bessere Möglichkeit, dieses Problem anzugehen, bevor ich etwas schreibe, das nur bestimmten Teilstrings in seiner Ausgabe entspricht?

1
To identify the character set used within files, `file` should suffice e.g. one way to parse out the character set: `raw=$(file -i $1); cset=$`. vor 12 Jahren 0

1 Antwort auf die Frage

2
Mattias Ahnberg

Mit dem --mime-typeArgument wird fileder MIME-Typ angegeben, der einfacher zu analysieren ist.

$ file --mime-type /etc/passwd /etc/passwd: text/plain 

Die -iOption enthält bei Bedarf etwas mehr Informationen (Codierungstyp):

$ file -i /etc/passwd /etc/passwd: text/plain; charset=us-ascii