查找长度大于N的所有行

时间:2013-08-09 22:39:22

标签: regex powershell

这是我的第一个问题。我刚刚开始使用Powershell。

假设我有一个文本文件,我想只匹配长度大于10个字符的行。所以我制作了一个非常简单的正则表达式。

$reg = "^\w{0,10}$"

我使用notmatch运算符。

$myTextFile | Select-String -NotMatch $reg

这不起作用。我也试过

$reg = "^[a-zA-Z0-9]{0,10}$"

但这也不起作用。

对我有任何线索?非常感谢!

1 个答案:

答案 0 :(得分:6)

您不需要正则表达式匹配。就这样做:

Get-Content $myTextFile | ?{$_.Length -gt 10}

如果您想使用正则表达式,则点匹配任何字符。这将有效...

Get-Content $myTextFile | Select-String -NotMatch '^.{0,10}$'

......但这更简单:

Get-Content $myTextFile | Select-String '.{11,}'