【发布时间】:2019-02-01 18:51:19
【问题描述】:
我正在尝试构建一个简单的脚本来利用正则表达式并在一行上匹配多个模式 - 在整个输入文件中递归,并将结果写入输出文件。但我碰壁了:
示例文本:
BMC12345 COMBINED PHASE STATISTICS: 31 ROWS SELECTED FOR SPACE 'KDDT111D.DIH0345S', 0 ROWS SELECTED BUT DISCARDED DUE TBMC123456 COMBINED PHASE STATISTICS: 10 PHYSICAL (10 LOGICAL) RECORDS DISCARDED TO SYSDISC
这是我目前所得到的:
$table = [regex] "'.*'"
$discard = [regex] "\d* PHYSICAL"
Select-String -Pattern ($table, $discard) -AllMatches .\test.txt | foreach {
$_.Matches.Value
} > output.txt
输出:
'KDDT111D.DIH0345S'
期望的输出:
'KDDT111D.DIH0345S' 10 Physical
由于某种原因,我无法将两种模式都写入 output.txt。
理想情况下,一旦我完成这项工作,我想使用Export-Csv 来获得一些更清洁的东西,例如:
|KDDT111D|DIH0345S|10 Physical|
【问题讨论】:
标签: regex powershell select-string