在Mac OS X上利用Spotlight搜尋代碼

來源:互聯網
上載者:User

標籤:android   blog   http   color   使用   os   

用grep來搜代碼和方便,最原生態了,常用的:

? ~ grep ‘NuPlayer‘ -iInr --color ./aosp

其中`i`表示大小寫忽略;`I`表示忽略binary檔案;`n`顯示搜尋結果的行號;`r`表示遞迴搜尋子目錄


不過grep搜尋有點慢,網上也很多通過建立索引加快搜尋速度的方法:“other grep-like tools and indexing tools”

一向使用者體驗著稱的Mac指定不會缺少這個,`Spotlight`就是系統內建的基於索引搜尋工具,使用起來也很簡單,ctrl+space呼出。如果想調到搜尋結果檔案所在的目錄,就按住Command鍵滑鼠進入.


`Spotlight`當然有自訂更強的命令列版:`mdfind`。如上面搜尋命令可以這麼玩:

? ~ mdfind ‘NuPlayer‘ -onlyin ./aosp | xargs grep ‘NuPlayer‘ -iInr --onlyin ./aosp

這樣的速度在搜尋像android代碼裡會快好幾十倍。其中`-onlyin`告訴命令僅僅在這個目錄裡找,要不然會在整個硬碟上搜(不過也很快).不妨做個函數放在`bash_profile`裡:

function fastfind {mdfind [email protected] -onlyin . | xargs grep [email protected] -riIn .;}


由於索引的限制,`mdfind`搜尋對象不支援Regex,不過這幾個應該夠用:

  • mdfind ‘‘str1 str2" 表示str1和str2同時出現

  • mdfind "str1|str2" 表示str1和str2出現一個

  • mdfind "str1-str2 表示出現str1但不出現str2


`mdfind`更進階的用法,參考spotlight的metadata定義,參考spotlight。

spotlight定義的metadata不太好理解,不過敲一敲這個命令`mdls`就能知道個大概:

?  ~T  mdls ~/Movies/Practise.mp4kMDItemAudioBitRate            = 48kMDItemAudioChannelCount       = 2kMDItemCodecs                  = (    "H.264",    AAC)kMDItemContentCreationDate     = 2012-01-05 21:59:18 +0000kMDItemContentModificationDate = 2012-01-05 21:59:18 +0000kMDItemContentType             = "public.mpeg-4"kMDItemContentTypeTree         = (    "public.mpeg-4",    "public.movie",    "public.audiovisual-content",    "public.data",    "public.item",    "public.content").....kMDItemFSName                  = "Practise.mp4"......?  ~T  mdfind ‘kMDItemCodecs=H.264‘ | grep ‘Practise‘/Users/hong/Movies/Practise.mp4

spotlight裡正是通過這些‘kMDItem‘開頭的metadata來做索引的

命令列控可以再看看這個:“用命令列使用spotlight”

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.