Вывод нескольких преобразованных файлов в пользовательский каталог с помощью textutil

Мне нужно пакетно преобразовать несколько файлов docx в файлы txt и поместить их в пользовательский каталог с помощью textutil.

Кажется, я могу сделать это с одним файлом, но не с несколькими файлами. Если я установлю путь -output при преобразовании нескольких файлов, он преобразует только первый файл.

Я понимаю, что могу просто переместить файлы после конвертации, но если бы это было возможно, это сэкономило бы время в будущем.

textutil -convert txt /Users/evanjohn/Desktop/docs/original/*.docx -output /Users/evanjohnmeredith-davies/Desktop/docs/converted/*.txt
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
138
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прежде чем textutil сможет что-либо сделать, оболочка расширяет шарики; поскольку converted/*.txt ничему не соответствует, он расширится до самого себя 1, создав файл с именем *.txt, а это не то, что вам нужно.

Поскольку, похоже, нет возможности указать несколько имен выходных файлов, вам, вероятно, придется перебирать файлы один за другим:

for fpath in /Users/evanjohn/Desktop/docs/original/*.docx; do
    fname=${fpath##*/}
    textutil -convert txt "$fpath" -output "${fpath%/*}/converted/${fname%.docx}.txt"
done

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


1Или, если установлена ​​опция оболочки nullglob, на пустую строку.

Другие вопросы по теме