从文件中搜索特定模式

时间:2013-06-25 12:29:20

标签: regex windows powershell powershell-v2.0

我有一个包含以下数据的文本文件。例如:test.txt

    20Jun@17:28 Ticket = [ABCDEF]
    21Jun@17:28 12345
    22Jun@17:28 This is a test line
    25Jun@17:28 Ticket = [ABCDEF]
    25Jun@17:28 Ticket = [123456]
    25Jun@17:28 This is a test line
    25Jun@17:28 Ticket = [DFG256]
    25Jun@17:28 Ticket = [ABCDEF]

我选择了一个如下变量来捕获今天的条目。

    $date=get-date -format ddMMM
    $match=select-string -pattern $date $filename

这很好但是新的要求不需要捕获今天的每个条目。

只需捕获其中包含名称为Ticket的条目的行。 那么有没有办法让我的模式如下:

    25Jun@17:28 Ticket = [ABCDEF]
    $date+@+......'Ticket = ['......']' --is there something like this..

我对Regex知之甚少:(

2 个答案:

答案 0 :(得分:4)

您的模式如下:

"$date[@]\d+:\d+ Ticket"

定义票证的模式是:

 "$date@\d+:\d+ Ticket = [[]ABCDEF[]]"

答案 1 :(得分:-1)

第二行应该是:

$match=select-string -pattern $date $filename | where-object {$_ -match "\d\d\w\w\w.+Ticket"}

enter image description here