![](/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.