![](/img/trans.png)
[英]Search Sublime Text 3 for files that don't contain a specific string
[英]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.