如何在命令行上使用 Mac OS X 的摘要服务?

如何在命令行上使用 Mac OS X 的摘要服务?

可以在 Mac OS X 中的命令行上使用‘摘要服务’吗?

我已经尝试过管道,使用文本文件作为参数并将文本文件作为标准输入发送。

答案1

尝试这个 AppleScript(假设它名为 summary.scpt),然后使用“osascript summary.scpt <n>”从命令行调用,其中 n 是所需摘要句子的数量。这适用于 OS X 10.6.7。只需将内容输入即可。

on run argv
  set stdin to do shell script "cat"
  set stdout to summarize stdin in (item 1 of argv)
end run

或者,你可以使用类似这样的一行代码:

#!/bin/bash
osascript -e 'set stdin to do shell script "cat"' -e "set stdout to summarize stdin in $1"

答案2

不幸的是,如果不编写应用程序(AppleScript ObjC,甚至是真正的 Obj-C 应用程序)来与 NSService 交互,就不行。即便如此,Summary Service 也只是一个 GUI 应用程序,因此它会调出 GUI。

但是,某些服务(如果是 Automator 工作流)可以通过在命令行上使用手动运行automator

答案3

还有一个名为利博茨其中包括一个可以通过管道传输的命令行“ots”可执行文件。Summary Service 和 OTS 似乎给出了不同的结果,在简短的测试中,我不确定我会给哪一个更高的分数。

相关内容