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

时间:2019-04-08 15:26:16

标签: macos shell terminal textutils

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

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

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

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

1 个答案:

答案 0 :(得分: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选项,则为空字符串。