5

Можно ли использовать «сводную службу» в командной строке в Mac OS X?

Я уже пробовал конвейерную передачу, используя текстовый файл в качестве аргумента и отправляя текстовый файл как stdin.

3 ответа3

3

Попробуйте этот AppleScript (скажем, он называется sumrize.scpt) и вызовите из командной строки, используя «osascript sumrize.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"
1

К сожалению, без написания приложения (AppleScript ObjC или даже настоящего приложения Obj-C) для взаимодействия с NSService, нет. Даже в этом случае Summary Service является исключительно приложением с графическим интерфейсом, поэтому оно будет вызывать GUI.

Однако некоторые службы (если рабочий процесс Automator) можно запустить вручную из командной строки, используя automator в командной строке.

1

Есть также библиотека с открытым текстом, называемая libots, которая включает в себя исполняемый файл командной строки "ots", к которому можно обратиться. Итоговые сервисы и OTS, похоже, дают разные результаты, в кратком тестировании я не уверен, какой из них я бы дал более высокие оценки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .