Вывести несколько преобразованных файлов в пользовательский каталог, используя textutil - PullRequest
1 голос
/ 08 апреля 2019

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

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

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

textutil -convert txt /Users/evanjohn/Desktop/docs/original/*.docx -output /Users/evanjohnmeredith-davies/Desktop/docs/converted/*.txt

1 Ответ

1 голос
/ 08 апреля 2019

Прежде чем textutil сможет что-либо сделать, оболочка расширяет шарики; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1003] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 100. Поскольку, похоже, нет возможности указать несколько выходных имен файлов, вам, вероятно, придется перебирать файлы один за другим:

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, в пустую строку.

...