LibreOffice:递归转换文件夹和子文件夹中的文档
LibreOffice: recursively convert documents in folders and subfolders
我以 doc 格式存储了许多文件,我只能在我的 mac.
上使用 libreoffice 打开这些文件
命令:
./soffice --headless --convert-to docx --outdir /home/user ~/Downloads/*.doc
做它应该做的:它将所有 *.doc
文件转换为 libreoffice *.docx
文件。
我的问题是我有包含这些文件的文件夹和子文件夹。
有没有办法从起始目录搜索所有文件夹并让“soffice”在每个文件夹中完成其工作,将新版本 (*.docx
) 准确存储在原始 ( *.doc
) 被发现。
不幸的是,我不精通苹果脚本或终端来完成这项工作。然而,数百个文件夹中有 8000 个 doc 文件需要更新到 docx。
感谢您的帮助。
Is there any way to search through all the folders from a starting directory and to let "soffice" do its job in each of these folders, storing the new versions (.docx) exactly where the original (.doc) was found.
这实际上可以在终端中使用find
命令:
完成
find '/path/to/directory' -type f -iname '*.doc' -execdir /Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to docx '{}' \;
在上面的示例命令中,将'/path/to/directory'
更改为目标目录的实际路径名 包含 子目录 包含 .doc
文件 .
这个 find
命令 的作用,简而言之,它是否找到所有 .doc
文件 '/path/to/directory'
的 分层目录结构 并在包含.doc
files 并将每个文件转换到其 子目录.
中的位置
备注:
在 Terminal 和 commands 键入将产生所需的行为!
这个命令假定没有.docx
文件已经存在相同的名称作为子目录中的.doc
文件,因为它会自动覆盖任何现有的.docx
files 与 .doc
files 相同的 name。据我所知,soffice
命令 没有提供 选项 不覆盖现有文件。如果这将成为一个问题,那么将需要一个不同的解决方案。
我以 doc 格式存储了许多文件,我只能在我的 mac.
上使用 libreoffice 打开这些文件命令:
./soffice --headless --convert-to docx --outdir /home/user ~/Downloads/*.doc
做它应该做的:它将所有 *.doc
文件转换为 libreoffice *.docx
文件。
我的问题是我有包含这些文件的文件夹和子文件夹。
有没有办法从起始目录搜索所有文件夹并让“soffice”在每个文件夹中完成其工作,将新版本 (*.docx
) 准确存储在原始 ( *.doc
) 被发现。
不幸的是,我不精通苹果脚本或终端来完成这项工作。然而,数百个文件夹中有 8000 个 doc 文件需要更新到 docx。
感谢您的帮助。
Is there any way to search through all the folders from a starting directory and to let "soffice" do its job in each of these folders, storing the new versions (.docx) exactly where the original (.doc) was found.
这实际上可以在终端中使用find
命令:
find '/path/to/directory' -type f -iname '*.doc' -execdir /Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to docx '{}' \;
在上面的示例命令中,将'/path/to/directory'
更改为目标目录的实际路径名 包含 子目录 包含 .doc
文件 .
这个 find
命令 的作用,简而言之,它是否找到所有 .doc
文件 '/path/to/directory'
的 分层目录结构 并在包含.doc
files 并将每个文件转换到其 子目录.
备注:
在 Terminal 和 commands 键入将产生所需的行为!
这个命令假定没有
.docx
文件已经存在相同的名称作为子目录中的.doc
文件,因为它会自动覆盖任何现有的.docx
files 与.doc
files 相同的 name。据我所知,soffice
命令 没有提供 选项 不覆盖现有文件。如果这将成为一个问题,那么将需要一个不同的解决方案。