2013-04-16 293 views
1

我創建了一個小的applescript,用於查找與某個文件夾中的多個字符串匹配的文件,當它們找到時,它將返回該文件的路徑。在AppleScript語言寫的,它看起來像這樣:shell的shell腳本

集filesExist到的(在文件夾中的所有文件pathUnsorted名稱以(項目theWords 1)和名稱啓動包含(項目theWords 2)和名稱中包含路徑(項目3),名稱包含(第4項)和名稱包含(第5項))

現在,我需要將其轉換爲shell命令,因爲這些命令可以在此命令內運行:

設置文件存在做shell腳本「(shell逗號nd去這裏)「

不幸的是,我不知道如何在shell命令中做到這一點......有人可以幫助我?

+0

爲什麼在applescript中使用shell命令而不是常規的applescript命令?你能從中得到什麼好處?請解釋您需要達到的目標,我們可以幫助您實現目標。 – regulus6633

+0

大多數速度。當我必須查找一個文件並且有1500個其他文件時,它可能需要很長時間。在谷歌搜索後,我發現我可以使用系統事件來進行搜索,但它也證明是太慢了。有人建議殼可以快很多 – ruben1691

+0

好點! Finder搜索大量文件的速度很慢。 – regulus6633

回答

1

假設pathUnsorted已經是POSIX路徑:

do shell script "ls " & quoted form of (pathUnsorted & "/" & (item 1 of theWords)) & "*" & ¬ 
    " | grep " & quoted form of (item 2 of theWords) & ¬ 
    " | grep " & quoted form of (item 3 of theWords) & ¬ 
    " | grep " & quoted form of (item 4 of theWords) & ¬ 
    " | grep " & quoted form of (item 5 of theWords) 

這是理論上可以構造一個正則表達式,將匹配一杆所有正確的文件,但這是簡單。

+0

謝謝!對不起,我花了這麼長時間,但我遇到了一些電腦問題......但我還有一個問題:如果我想在那裏放置一個或一個聲明怎麼辦?像這樣:將filesExist設置爲路徑(path文件中的每個文件,其名稱以(theWords的第1項)開頭,name包含(theWords的第2項),name包含(theWords的第3項),name包含)和名稱包含(第5項)和(名稱包含acr1或名稱包含acr2)) – ruben1691