簡體   English   中英

在Sublime Text 2中搜索包含“Mickey”但不包含“Mouse”的文件

[英]Search Sublime Text 2 for files that contain 'Mickey' but do not contain 'Mouse'

是否可以在Sublime Text 2中搜索包含'Mickey'文件

但不要包含'Mouse'

正則表達式可能? 但他們會是什么?

是的,您可以使用正則表達式來執行此操作,使用負前瞻表達式

打開搜索Ctrl-Shift-F

確保使用正則表達式Alt-R

Mickey(?! Mouse)

將返回所有未跟隨“ Mouse ”的“ Mickey ”實例

注意確保在 Mouse 前包含空格

你使用這個特定的文本編輯器真的很重要嗎? 就個人而言,我只是使用grep來做。 就像是:

grep -l Mickey filename | xargs grep -L Mouse

說明:

-l選項表示“打印包含匹配的文件名,而不是匹配的行”。

xargs將這些匹配的文件名傳遞給下一個grep命令。

-L選項表示“打印不包含匹配項的文件名,而不是匹配的行”。

然后,您可以同時在多個文件上運行此命令 - 可能通過向第一個grep添加-r(“遞歸”)選項。

我嘗試了Smandoli提供的正則表達式,但實際上它已經Smandoli Sublime Text 2

也許這是我添加的Sublime插件之一的問題,我根本就不知道。

我想使用Sublime進行搜索的原因是我正在開發一個包含超過一千個文件的相當大的項目。 所以我想在項目中搜索包含特定字符串('Mickey')的文件。 如有必要,編輯文件並添加單詞Mouse。 然后我可以“刷新”搜索,現在將省略我剛剛編輯的文件,因為它不再符合搜索條件。 這是一個合理的工作流程。

    Note: The strings are not actually Mickey and Mouse, I just used those to illustrate 
the problem. I don't work for Disney :)

因為Smandoli提供的regex崩潰Sublime我也嘗試了Tom Lord提供的grep命令(我在Windows 7上運行)但是看不到只能定位具有特定擴展名的文件的方法( *.asp

最后我寫了一個小的Powershell腳本,似乎可以解決這個問題:

Get-ChildItem -recurse | Where-Object {$_.FullName -like "*.asp"}
    ForEach-Object { if( ( $(Get-Content $_) |
                            select-string -pattern "Mickey") )
                     { $_.PsPath }} | Get-ChildItem |
    ForEach-Object { if( !( $(Get-Content $_) |
                            select-string -pattern "Mouse") )
                     { $_.PsPath }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM