【问题标题】:Bash: How to add text to a .MS Word (doc) file or an .html file?Bash:如何将文本添加到 .MS Word (doc) 文件或 .html 文件?
【发布时间】:2021-04-24 05:43:15
【问题描述】:

我是 bash 的初学者,一直在尝试解决一个烦人的问题 - 我无法将文本添加到 MS Word (.doc) 文件中。

我设法提取了文本,但没有插入文本。我尝试使用sed 命令,但它破坏了文件 - 我想是因为它将文本添加到文件的“源代码”中(不确定这是否是正确的术语)。我还尝试将文本添加到.html 文件(使用相同的命令),但它仍然不起作用。它仅适用于简单的 .txt 文件。

我尝试过的命令:

$: sed -i 'a/existingTest/newText' MyFile.doc

$: sed "/existingText/a newText" MyFile.doc
# I use "existingTest" to identify the location where I want to append my newText.

通过这两个命令,文本被添加到“源代码”中(无论是应用于 .doc 还是 .html 文件),这使得文件不可读。

有人知道将文本添加到 .doc 或 .html 文件的方法吗?最好是初学者会理解的解决方案,但我会欢迎任何东西:D

谢谢!

【问题讨论】:

  • 我不认为你可以用这种方式处理 MS Word(一堆 xml 压缩在一起)
  • html 应该适用于 sed,但我不确定这是否是您的语法问题。您可以发布一个您尝试更改的 HTML 示例吗?
  • 你确定你正在使用*.doc 格式,这种格式在 20 年前就已经过时了?如果是*.docx,解压docx文件后,找到包含目标文本的文件,通过替换文本进行编辑,然后再次压缩文件。
  • 我正在使用 .doc 文件。也许我可以开始使用 .docx,它可能会更容易。关于 .html 文件,它是一个普通的 html 文件。我刚刚在里面插入了一些文本进行测试,并使用了我在帖子中提到的命令。然后新文本被插入到源代码中,而不是作为文件中的普通行。
  • 感谢您的反馈。至于 .html 文件,您能否提供一个您测试过的示例,以便我可以重现该问题?最好用 .html 文件的文本更新您的问题,而不是将其写在评论中。 BR。

标签: html bash sed .doc


【解决方案1】:

如果您的 MS Word 文件有*.docx 扩展名,请尝试一下:

unzip MyFile.docx
sed -i 'a/existingTest/newText' word/document.xml
zip -f MyFile.docx

作为 Bing Wang cmets,docx 文档是一个压缩文件。然后一旦解压缩文件,编辑,然后更新反映编辑的 zip 文件。

【讨论】:

  • 谢谢。我将首先将我的文件转换为 docx(来自 doc),然后应用您的方法。
  • 我了解到您实际上是在处理 doc 文件。首先将它们转换为 docx 是个好主意。 docx文件由standardxml文件组成,而doc文件是微软专有格式,没有微软API不容易解析。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多