Как «вырезать» значение null?

Команда 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 был бы превосходным.

Думаю, неразрезанные решения тоже хороши, но я не хочу отказываться от простой идеи.

11
задан M Somerville 15 November 2015 в 10:30
поделиться