Я ищу способ отсортировать результаты find
, возвращая правильное количество каталогов для дальнейшей обработки в bash-скрипте. так как имена файлов не могут содержать символ NULL (\ 0), я подумал, что это станет отличным разделителем для результатов, передаваемых по sort
.
так что это то, что я ожидал бы работать, как описано:
find ./ -maxdepth 1 -type d -iname 'xyz?' -print0 | sort -t $'\0'
но, к сожалению, я получил знакомую sort: empty tab
, ища объяснения, натолкнулся на вопрос, приводящий к аналогичному результату , который описан как работающий нормально (см. Комментарий Лукаса от 26 апреля). в моем случае (с использованием GNU sort v 7.4) это выглядит иначе.
Я также проверил вывод команды find по трубопроводу в od -c
, но это только показывает, что результирующие папки разделены NULL, как и ожидалось.
кто-нибудь здесь сталкивался с подобным сценарием и, возможно, нашел решение или объяснение, почему \ 0 кажется невозможным разделителем для сортировки?
с нетерпением жду ваших ответов ...
edit: обратите внимание, что здесь в качестве примера используется команда find, более простой способ проверить / проиллюстрировать это может быть echo "g\0u\0b\0k" | sort -t $'\0'