【问题标题】:LibreOffice: recursively convert documents in folders and subfoldersLibreOffice:递归转换文件夹和子文件夹中的文档
【发布时间】:2020-12-20 14:44:37
【问题描述】:

我以 doc 格式存储了许多文件,我只能在我的 mac 上使用 libreoffice 打开。

命令:

 ./soffice --headless --convert-to docx --outdir /home/user ~/Downloads/*.doc

完全按照它应该做的:它将所有 *.doc 文件转换为 libreoffice *.docx 文件。

我的问题是我有包含这些文件的文件夹和子文件夹。

有没有办法从起始目录搜索所有文件夹并让“soffice”在每个文件夹中完成其工作,将新版本 (*.docx) 存储在原始 (*.doc) 的确切位置找到了。

不幸的是,我不精通苹果脚本或终端来完成这项工作。然而,数百个文件夹中有 8000 个 doc 文件需要更新到 docx。

感谢您的帮助。

【问题讨论】:

    标签: applescript docx libreoffice doc


    【解决方案1】:

    有没有办法从起始目录中搜索所有文件夹,并让“soffice”在每个文件夹中完成其工作,将新版本 (.docx) 准确地存储在原始目录的位置 ( em>.doc) 被发现。

    这实际上可以在终端中使用find 命令来完成:

    find '/path/to/directory' -type f -iname '*.doc' -execdir /Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to docx '{}' \;
    

    在上述示例命令中,将'/path/to/directory'更改为包含子目录目录的实际路径名 /em> 包含.doc 文件

    这个find 命令 的作用,简而言之,它是在分层目录结构中找到所有.doc文件 '/path/to/directory' 并在包含.doc 文件 的每个子目录 中执行命令,并在其子目录中适当地转换每个文件.


    注意事项:

    • 终端中运行命令之前,请务必确保您有适当的备份,并且键入的命令会产生所需的行为!

    • 这个命令假设没有.docx文件已经存在与.doc相同的名称文件子目录中,因为它会自动覆盖与.doc文件具有相同名称的任何现有.docx文件 /em>。据我所知,soffice command 没有提供不覆盖现有文件的 选项。如果这将成为一个问题,那么将需要一个不同的解决方案。

    【讨论】:

    • 多年来,我一直在寻找一种将文本文件从 doc 批量编辑到 docx 的方法,这个解决方案非常优雅。我只需要编辑“路径/到/目录”就可以了!我花了两天时间处理了 8000 个文件,剩下的 8000 个文件在十分钟内完成!你很聪明! (我想我不应该在这里写这个,但是我的赞成票还没有被计算在内,所以请原谅我。)谢谢!圣诞快乐!
    猜你喜欢
    • 2017-08-25
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多