1

学习 AppleScript 我正在尝试练习,我想看看我是否可以在一个.xhtml文件中获得一个类的计数。

在我的 BBEdit 项目中,我为项目设置了一个变量:

set this_project to file of project document 1

确保针对所有.xhtml文件:

set total_xhtml to {search mode:grep, case sensitive:false, match words:false, extend selection:false, returning results:true, filter:{ID:"111232452", filter_mode:and_mode, filter_terms:{{operand:"xhtml", field:«constant ****FnSf», operator:op_is_equal}}}}

但是当我尝试计算每个文件的类时,我很难过..

我确实尝试过:

set varCount to count class=\"foobar\"" of (this_project in total_xhtml)

如果我尝试set varCount to count class=\"foobar\""它会在 AppleScript 编辑器中返回一个数字,但我怎样才能获得项目中每个文件的完整计数?

4

2 回答 2

0

如果我理解您的要求,您想知道您的课程在不同的 .xhtml 文件中列出了多少次。

如果这就是您要完成的工作,那么下面是一个工作示例,应该可以满足您的需求。

on run
     try
         set foundItems to do shell script "grep -ri 'yourClassName' " & quoted form of "/Path/to/Your/directory"
     on error
         set foundItems to ""
     end try

     set oldDelims to AppleScript's text item delimiters -- save their current state
     set AppleScript's text item delimiters to {return} -- declare new delimiters
     set tempList to every text item of foundItems
     set AppleScript's text item delimiters to oldDelims -- restore them

     set foundCount to count of tempList
end run
于 2014-07-31T02:53:24.073 回答
0

刚刚意识到我从来没有接受过我的问题的答案,我想结束这个问答。我没有选择提供的答案,因为text item delimiters从文件中触发了不正确的计数,并且我想要一种不调用do shell.

如果您引用字典,则在 AppleScript 和 BBEdit 中FIND

在此处输入图像描述

并且通过重复循环,我能够逐步完成每次出现class="foobar"

## beginning of file
select insertion point before first character of text document text document 1 

set countClass to 0

repeat
    ## find pattern
    set findClass to find "class=\"foobar\"" searching in text 1 of text document text document 1 options {options} with selecting match 

    ## exit after no more patterns
    if not found of findClass then exit repeat 

    ## increment for every occurrence
    set countClass to countClass + 1 
end repeat

## return total count of pattern
return countClass 

通过上述重复,我能够逐步浏览每个文件并汇总每次出现的 class foobar。希望这可以帮助下一个人。

于 2017-09-27T14:33:29.600 回答