如何通过命令行打开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
相关产品推荐
相关产品推荐

