You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行打开macOS预览应用并自动搜索指定字符串

如何通过命令行打开macOS预览应用并自动搜索指定字符串

这个需求挺实用的,不过Preview本身确实没有直接支持搜索的命令行参数,不过我们可以用AppleScript配合命令行来实现这个功能,下面分享两种可行的方法:

方法一:组合open命令与AppleScript快速触发搜索

先通过open命令打开目标PDF,再用AppleScript模拟快捷键调出搜索框并输入关键词,适合快速在终端执行:

open xyz.pdf && osascript -e 'tell application "Preview" to activate' -e 'tell application "System Events" to keystroke "f" using command down' -e 'tell application "System Events" to keystroke "你的搜索关键词"'

说明:

  • 命令里的&&确保PDF打开后再执行后续的搜索操作
  • keystroke "f" using command down模拟按下Command+F调出Preview的搜索框
  • 最后一行的keystroke会自动输入你指定的搜索关键词

方法二:用完整AppleScript实现打开+搜索(更可靠)

如果你的PDF文件较大,或者需要更精准的控制,可以用完整的AppleScript来完成整个流程,还能加入加载等待时间:

首先,你可以把下面的代码保存成.scpt脚本文件(比如preview_search.scpt):

-- 替换成你的PDF文件路径和搜索关键词
set pdfPath to POSIX file "/Users/你的用户名/Documents/xyz.pdf" as alias
set searchTerm to "要搜索的内容"

tell application "Preview"
    open pdfPath
    activate
    delay 0.5 -- 根据PDF大小调整等待时间,确保文件加载完成
    tell application "System Events"
        keystroke "f" using command down
        keystroke searchTerm
        keystroke return -- 可选:自动跳转到第一个搜索结果
    end tell
end tell

然后在终端执行这个脚本:

osascript preview_search.scpt

或者直接在终端一行执行(适合临时使用):

osascript -e 'set pdfPath to POSIX file "/Users/你的用户名/Documents/xyz.pdf" as alias' -e 'set searchTerm to "要搜索的内容"' -e 'tell application "Preview"' -e 'open pdfPath' -e 'activate' -e 'delay 0.5' -e 'tell application "System Events"' -e 'keystroke "f" using command down' -e 'keystroke searchTerm' -e 'keystroke return' -e 'end tell' -e 'end tell'

注意事项:

  • 第一次运行时,系统可能会弹出提示,要求给终端或脚本授予“辅助功能”权限,前往系统设置 > 隐私与安全性 > 辅助功能,勾选对应的应用即可
  • 如果PDF文件很大,需要把delay的数值调大(比如改成1或2),确保Preview完全加载文件后再执行搜索操作
  • 如果搜索关键词包含空格或特殊字符,直接在searchTerm里用引号括起来即可,比如set searchTerm to "hello world"

备注:内容来源于stack exchange,提问作者Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:58:00