1

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

看来我可以用一个文件来做到这一点,但不能用多个文件。如果我-output在转换多个文件时设置路径,它只会转换第一个文件。

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

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

1 回答 1

1

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 选项,则为空字符串。

于 2019-04-08T15:52:44.997 回答