Unix 'Datei' Befehl hat eine -0 Option, um ein Nullzeichen nach einem Dateinamen auszugeben. Dies ist angeblich gut für die Verwendung mit "Schnitt".Wie man 'Null' schneidet?
Von man file
:
-0, --print0
Output a null character ‘\0’ after the end of the filename. Nice
to cut(1) the output. This does not affect the separator which is
still printed.
(. Hinweis auf meinem Linux, der Separator '-F' wird nicht gedruckt - was mehr Sinn für mich macht)
Wie können Sie 'schneiden' einen Dateinamen aus der Ausgabe von 'Datei' extrahieren? Diese
ist das, was ich tun möchte:
find . "*" -type f | file -n0iNf - | cut -d<null> -f1
wo <null>
der NUL-Zeichen ist.
Nun, das ist, was ich versuche zu tun, was ich tun möchte, ist alle Dateinamen aus einem Verzeichnisbaum, die einen bestimmten MIME-Typ haben. Ich benutze einen Grep (nicht gezeigt).
Ich möchte alle legalen Dateinamen behandeln und nicht auf Dateinamen mit Doppelpunkten stecken, zum Beispiel in ihrem Namen. Daher wäre NUL hervorragend.
Ich denke, nicht geschnittene Lösungen sind auch in Ordnung, aber ich hasse es, auf eine einfache Idee aufzugeben.
Das ist pr scheinbar nur etwas, was ich nicht versucht habe! Vielen Dank! – philcolbourn
@philcolbourn: Gern geschehen! – ruakh
Dies funktioniert überhaupt nicht. 'cut: bad delimiter' (Mac OS X) – Sukima