【问题标题】:MS Word Doc: Automating find/replace using Shell ScriptsMS Word Doc:使用 Shell 脚本自动查找/替换
【发布时间】:2011-10-04 00:11:24
【问题描述】:

我有一些想要从中删除一些元素的 word 文档。我想做的如下:

  1. 复制并粘贴 word 文件的全部内容(可能不是必需的)并将其移动到文本文件中或将 .doc 转换为 .txt
  2. 使用正则表达式:将 \[.*\] 替换为 "" 并将 \(.*\) 替换为 ""
  3. 将结果保存到与原始 Word 文档同名的文本文件中。

感谢您的想法和方向。就目前而言,我不知道如何以编程方式做任何这些事情。我正在手动执行此操作。

如果重要的话,我使用的是 Ubuntu 11.04

【问题讨论】:

    标签: shell text doc


    【解决方案1】:

    由于您愿意使用纯文本,因此对您的算法进行了一些改进:

    1. 使用 antiword 自动从 doc 转换为 tx
    2. 使用sed 进行就地正则表达式修改:sed -i -e's/bad/good/' file.txt

    更新(回应评论):

    正则表达式很好,但我没有完全理解目标:

    • 如果您想用 "" 替换出现的 [foo] & (foo),请使用:

      sed -i -e's/\[.*\]/""/g' file.txt; sed -i -e's/\(.*\)/""/g' file.txt

    • 如果您想在每次使用时将出现的 [foo] & (foo) 替换为“foo”:

      sed -i -e's/\[\(.*\)\]/"\1"/g' file.txt; sed -i -e's/(\(.*\))/"\1"/g' file.txt

    【讨论】:

    • 第 1 部分。没问题。但我对 sed 一点也不熟悉。您能否通过使用我的 1 个正则表达式调用的示例来更新您的答案,以便我可以看到语法?
    • 更新了答案,因为我需要更多空间
    • 抱歉,我应该更明确地使用我的用法。基本上,我想删除文档中包含在 (...) 或 [...] 中的所有内容,包括括号。
    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2012-06-07
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多