使用 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 选项,则为空字符串。
我需要使用 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 选项,则为空字符串。