如何在两种不同的文件格式之间传输差异?

如何在两种不同的文件格式之间传输差异?

我经常发现,以一种文件格式编辑文档,同时以另一种格式存储文档非常方便。例如,可以在 markdown 中写下文档,然后将其转换为 word 文件并在那里进行编辑。我希望提取编辑内容并将其应用回原始 markdown 文件。

因此,我会将A.md转换为A.docx(例如使用pandoc),编辑为,并以某种方式将和之间B.docx的更改集应用到。A.docxB.docxA.md

我的问题是:

是否有可靠/自动的方法将 Word 中的编辑(文本编辑)转回基于文本的文件?

当然,我可以直接转换B.docx回 markdown并用B.md覆盖。但转换过程通常会引入不可逆的变化,因此循环=> =>将产生与原始 markdown 文件不同的结果。一些效果​​将被添加/丢失(由于不同的换行符、字体、格式等)。我想避免这种损失,并使最终文档尽可能接近原始文件。A.mdB.mdA.mdA.docxA2.mdA2.mdA.mdA.md

是否可以使用diff/patch在 Bash 脚本中执行以下转换:

  1. A.md=> A.docx=>A2.md

  2. A.docx=> (编辑)B.docx

  3. B.docx=>B.md

  4. diff B.md A2.md以某种方式得到便携的修补

  5. 将补丁文件应用到A.md代替 A2.md

我使用的经验有限git diff,但直接使用的经验不多diff/patch。我想知道是否有人可以帮助解释这种“转移”差异所需的命令序列。

答案1

您所问的 bash 语法(步骤 4,5)是:

diff B.md A2.md > patch.data 
patch A.md patch.data

我认为你可能把文件反转了差异? 请记住修补覆盖 A.md,因此如果您需要原件,请复制一份。

无论如何,我怀疑这种方法是否能够成功。

在我看来,Word 编辑器引入了太多的不确定性,任何自动转换都不能被认为是“可靠的”。即使你让脚本运行起来,你也可能需要每次更新 Word 编辑器时都对其进行修复。

相关内容