我在OSX 10.11.4上。我想获得所有已安装字体的stdout列表。具体来说,我喜欢"友好"名称和文件名。 Applescript似乎是最本土的"本地"要走的路,但我是新手 - 也许这是一个简单的问题。到目前为止,我有这个几乎可以工作:
osascript -e 'tell application "Font Book" to {name, files} of typefaces'
这给了我想要的东西,但名称和文件名作为两个连接列表返回。例如:
Arial, Arial Bold, file Arial.ttf, file ArialBold.ttf ...
是否有一种简单的方法可以让Applescript输出更像:
{Arial, file Arial.ttf}, {Arial Bold, file ArialBold.ttf} ...
我不在乎它是否恰好是那种格式,但我需要能够轻松解析输出并将结果分组为元组。
答案 0 :(得分:1)
对于这类事情,请考虑AS记录:
set fontData to {}
tell application "Font Book"
set fff to every typeface
repeat with fx in fff
set end of fontData to {FontFile:fx's files, FontDisplayName:fx's displayed name}
end repeat
end tell
获得记录后,可以将列表保存到文件中,然后以多种方式解析,而无需反复执行脚本。
答案 1 :(得分:0)
这个 bash oneliner 可以方便地按名称或任何其他属性(文件路径、类型等)获取所有已安装字体的列表,格式设置为易于解析/管道:
osascript -e 'tell app "Font Book"’ \
-e 'set myf to the name of every font family as list’ \
-e "set AppleScript's text item delimiters to linefeed” \
-e 'return myf as string’ \
-e 'end tell’
它运行快 - 但我让每个人都来判断:time : real 0.273 user 0.067
(时间命令与 396 字体库和 Apple Terminal - MacOS11.1 上的 bash5.1)
与任何其他字体属性一起使用,即列出您的字体 file path
而不是它们的姓氏:只需将 font family
更改为 font containers
在代码中。
注意:所有各种字体属性都在 Font Book 的 applescript 字典中定义 - 最好通过 Apple 值得信赖和经过测试的(如果有的话)脚本编辑器:Applications/Utilities/Script Editor >File >Open Dictionary :Font Book
>
步骤: