Regex 预览使用的pdf文件的脚本保存路径

Regex 预览使用的pdf文件的脚本保存路径,regex,macos,bash,shell,lsof,Regex,Macos,Bash,Shell,Lsof,您好,我错过了osx在重新启动后恢复会话的现代功能,因此我想编写一个bash脚本,保存在Preview.app中打开的pdf文件,并询问是否要在Preview.app中重新打开该文件,如果在最后两次脚本执行之间,系统已重新启动 我从 lsof | grep'^Preview*pdf$'>>listpreview.txt 但我无法确定合适的正则表达式来隔离路径,这是lsof返回的典型行 是 预览4581 My_user txt REG 14,2 3254550 36522430/任意路径/文件名,

您好,我错过了osx在重新启动后恢复会话的现代功能,因此我想编写一个bash脚本,保存在Preview.app中打开的pdf文件,并询问是否要在Preview.app中重新打开该文件,如果在最后两次脚本执行之间,系统已重新启动

我从

lsof | grep'^Preview*pdf$'>>listpreview.txt

但我无法确定合适的正则表达式来隔离路径,这是lsof返回的典型行 是

预览4581 My_user txt REG 14,2 3254550 36522430/任意路径/文件名,带有字符和空格的所有排序

有比lsof更直接的方法吗? 如何使用preview.app中使用的pdf文件路径列表保存.txt文件? 如何在文件/文件夹名称中不使用像ß这样的各种符号?
谢谢你的回答。

也许你也应该过滤pdf文件`lsof | grep-i^预览。*pdf$| awk'{print$NF}'>>listpreview.txt`你回答了3个问题中的2个。现在我将为您解答第一个问题`ls-l/proc/7857/fd`其中'7875'是一个进程id,可以通过ps命令greping找到,以获得正确的PID可以帮助您解决除lsof以外的其他问题。一旦您有了PID,您还可以使用pfile{PID}命令获取该进程打开的文件列表`lsof | grep-I^ Preview.*pdf$| awk'{print$NF}'>>listpreview.txt`试试这个
lsof | grep -i "^Preview.*\.pdf" | awk '{print $NF}' >> listpreview.txt