Команда Unix 'file' имеет опцию -0 для вывода нулевого символа после имени файла. Это якобы хорошо для использования с «вырезать».
Из man-файла
:
-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.
(Обратите внимание, что в моем Linux разделитель '-F' НЕ печатается, что для меня имеет больше смысла.)
Как вы можете использовать 'cut 'извлечь имя файла из вывода 'file'?
Вот что я хочу сделать:
find . "*" -type f | file -n0iNf - | cut -d<null> -f1
где
— символ NUL.
Именно это я и пытаюсь сделать. Я хочу получить все имена файлов из дерева каталогов, которые имеют определенный тип MIME. Я использую grep (не показан).
Я хочу обрабатывать все допустимые имена файлов и не зацикливаться на именах файлов с двоеточиями, например, в их имени. Следовательно, NUL был бы превосходным.
Думаю, неразрезанные решения тоже хороши, но я не хочу отказываться от простой идеи.