我需要将多个docx文件批量转换为txt文件,并使用textutil将它们放置在自定义目录中。
似乎我可以用一个文件来做到这一点,但不能用多个文件来做到这一点。如果在转换多个文件时设置了-output
路径,它将仅转换第一个文件。
我知道转换后只能移动文件,但是如果可能的话,将来可以节省时间。
textutil -convert txt /Users/evanjohn/Desktop/docs/original/*.docx -output /Users/evanjohnmeredith-davies/Desktop/docs/converted/*.txt
答案 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选项,则为空字符串。