文档的路径.土坯括号



有什么方法可以在括号中获取前面文档的路径吗?

我尝试过的:

使用AppleScript,这适用于大多数代码编辑器,但不适用于括号:

tell window 1 to set thePath to value of attribute "AXDocument"

另一方面,我注意到在"窗口"菜单>"括号"(菜单栏(中,有类似以下内容:

/path/to/document.html (some-text) — Brackets

我只想得到路径,没有:(一些文本(— 括号

(请注意,(某些文本(我的意思是它是每台计算机中不同的文本。常见的情况是在 (( 内。

运行以下命令:

tell application "System Events" to ¬
get has scripting terminology of application process "Brackets"

返回:

false

因此,使用 AppleScript 编写括号脚本将受到限制;但是,以下示例AppleScript代码为我工作,以返回括号中的"窗口"菜单上文档名称显示的所需部分:

tell application "System Events" to set menuItemName to ¬
(name of menu item 7 of menu 1 of menu bar item ¬
"Window" of menu bar 1 of application process "Brackets")
set docPathName to do shell script ¬
"grep -o '^.*\.[[:alnum:]]*[^ ]'<<<" & ¬
quoted form of menuItemName
return docPathName

请注意,grep命令,如果在终端中使用,则用于它的正则表达式.前面只有一个反斜杠,以将其视为文字.;但是,当使用do shell script命令时,需要额外的反斜杠才能正确转义它。


"括号">中,在">工作文件"下打开并选择文档时,所选文档的"窗口"菜单上显示的名称始终menu item 7,格式为:

/path/to/filename.ext (some text) — Brackets

使用grep -o仅返回使用^.*.[[:alnum:]]*[^ ]则表达式docPathName变量中的匹配部分,它将返回所有内容,但不包括" (some text) — Brackets"

换句话说,它只返回"/path/to/filename.ext"部分。

了解do shell script命令

  • grep- 从其手册页:文件模式搜索器
    • -o- 仅打印行的匹配部分。
    • ^.*.[[:alnum:]]*[^ ]- 请参阅下面的了解正则表达式:。
  • <<<- 从bash手册页: 此处字符串
    此处文档的变体,格式为: <<<单词>单词
    被展开并提供给其标准输入的命令。

了解正则表达式:

  • ^.*.[[:alnum:]]*[^ ]
    • ^- 断言字符串开头的位置。
    • .- 匹配任何字符(行终止符除外(。
    • *- 量词 — 零次和无限次之间的匹配,尽可能多地,根据需要回馈(贪婪(。
    • .- 从字面上匹配字符.(区分大小写(。
    • [[:alnum:]]- 匹配
    • 列表中存在的单个字符,匹配字母数字字符 [a-zA-Z0-9]。
    • *- 量词 — 零次和无限次之间的匹配,尽可能多地,根据需要回馈(贪婪(。
    • [^ ]- 匹配列表中不存在的单个字符,从字面上匹配该字符(区分大小写(。



注意:示例AppleScript代码就是这样,不包含任何适当的错误处理。用户有责任添加任何适当、需要或想要的错误处理。请查看AppleScript 语言指南中的try语句和错误语句另请参阅处理错误

相关内容

  • 没有找到相关文章

最新更新