Автоматизация ввода в оболочку программы

Действие -printf специфично для GNU find, поэтому оно недоступно на платформах, которые не запускают GNU find. Только невстроенный Linux и Cygwin запускают GNU find, если вы не установили его отдельно.

Вы можете установить GNU find на Solaris .

В качестве альтернативы вы можете переписать свой сценарий, чтобы использовать только переносимые функции. Универсального способа перевода -printf не существует: для разных спецификаторов потребуются разные инструменты. Для % f и % h это просто, поскольку это всего лишь части имени файла. Если имя файла находится в переменной оболочки x , вы можете использовать конструкции раскрытия параметров для извлечения базового имени (удалите префикс * / ) и имени каталога (удалите суффикс / * ).

find . -type f -exec sh -c 'for x do printf %s,%s\\n "${x##*/}" "${x%/*}"; done' sh {} +

1
10.05.2015, 03:00
0 ответов

Теги

Похожие вопросы