gpt4 book ai didi

macos - 将 ascii 格式的表格转换为 rtf

转载 作者:行者123 更新时间:2023-11-29 09:44:24 24 4
gpt4 key购买 nike

我有一堆非常古老的纯 ascii 文本。大部分文本都是简单的表格,格式如下:

------------------------------------------
| Some text | 200.3 | some text |
------------------------------------------
| Another text | 30.30 | comment |
------------------------------------------
...many "lines" like above...

我需要将文本转换为“现代”文档。手动将单元格复制到 TextEdit.app 表中是一项非常痛苦的工作。 (我使用的是 OS X)。

这里是否有可能使用一些脚本将表格转换为 RTF 或 DOC 格式?我可以尝试自己制作脚本,只需要一些想法如何开始...

最佳答案

我喜欢 apple-automator 服务,所以我向您展示了整个工作流程 - 接下来的步骤:

  • 启动 Automator.app
  • 选择服务
  • 设置接收富文本
  • 选中 Output replaces selected text 复选框
  • 单击工具栏上的“显示库”(如果隐藏)

现在添加第一个 Action :

  • 运行shell脚本
  • 传递输入:到标准输入
  • 将 Shell 更改为:/usr/bin/perl

添加以下脚本

use 5.012;
use open qw(:std :utf8);
print "<table border='1'>\n";
while(<>) {
chomp;
next if /^\s*[=-]*\s*$/;
my @arr = m/(?:^|\G\|)((?:[^\\|]|\\.)*)/sg;
print "<tr><td>" . join('</td><td>', map {s/^\s*(.*?)\s*$/$1/;$_} splice(@arr,1,-1)) . "</td></tr>\n";
}
print "</table>";

现在是第二个 Action :

  • 运行shell脚本
  • 传递输入:到标准输入

添加下一个脚本

textutil -stdin -inputencoding UTF-8 -format html -convert rtf -stdout | pbcopy -Prefer rtf

并添加第三个 Action :

  • 获取剪贴板的内容

用一些名称保存服务,例如:Table2Rtf

工作流程:

  • 只需启动您的 TextEdit.app,
  • 加载你的ascii文件
  • 将文档类型更改为 RTF(菜单:格式 -> 制作富文本)
  • 选择“ascii 表”(确保选择包含所有 | 字符的整个表)
  • 并从 TextEdit -> Services 运行上述服务。

如果一切顺利 - 表格将替换为简单的 RTF 表格,您可以调整列宽等....

Action 是:

  • perl 脚本将文本表格转换为简单的 HTML 表格
  • textutil 将 HTML 转换为 RTF 并将 rtf 复制到剪贴板
  • 最后是获取rtf剪贴板内容
  • 并且因为选择了“输出替换了输入”- 结果 RTF 简单地替换了文档中基于文本的表格。
  • 您也可以将“rtf”另存为“doc”。

Mac 的 Automator.app 非常强大,通过一些调整,您可以制作一个 converor.app 并简单地将所有 ascii 文件放入其中以转换为 rtf 文件。

关于macos - 将 ascii 格式的表格转换为 rtf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16778946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com