使用 textutil 将多个转换后的文件输出到自定义目录

Output multiple converted files to custom directory using textutil

我需要使用 textutil 将多个 docx 文件批量转换为 txt 文件并将它们放在自定义目录中。

看来我可以对单个文件执行此操作,但不能对多个文件执行此操作。如果我在转换多个文件时设置 -output 路径,它只会转换第一个文件。

我知道我可以在转换后移动文件,但如果可能的话将来会节省时间。

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

textutil 开始做任何事情之前,shell 扩展了 glob;因为 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 shell 选项,则为空字符串。