sun*_*ica 0 powershell pattern-matching
我需要ls | grep 'my[rR]egexp?'在 Powershell 中做一些类似于 Unix 的事情。类似的表达式ls | Select-String -Pattern 'my[rR]egexp?'似乎遍历了列出文件的内容,而不是简单地过滤文件名本身。
在选择字符串的文件一直没有多大帮助的。
很简单:
ls | where Name -match 'myregex'
Run Code Online (Sandbox Code Playgroud)
不过,还有其他选择:
(ls) -match 'myregex'
Run Code Online (Sandbox Code Playgroud)
或者,根据您的正则表达式的复杂程度,您也可以使用简单的通配符匹配来解决它:
ls wild[ck]ard*.txt
Run Code Online (Sandbox Code Playgroud)
这比上述选项更快。如果您可以在没有字符类的情况下将其放入通配符匹配中,您也可以只使用-Filter参数 to Get-ChildItem( ls),它在文件系统级别执行过滤,因此速度更快。另请注意,PowerShell 默认情况下不区分大小写,因此[rR]不需要像这样的字符类。
| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |