我的文件内容如下:
标题1
细节A
细节B
细节C
标题2
细节X
细节Y
细节Z
我需要提取标题和详细信息。应该有2列。标题数据位于第一列,详细数据位于第二列。
“标题”文本之后的数据是实际数据(即在“标题1”中,“1”是标题值)。 “细节”文本之后的数据是实际细节数据(即在“细节A”中,“A”是细节值)。
我想使用PowerShell提取标题和详细信息,但标题应重复每个细节。
例如,第一列是标题值,第二列是详细值:
1 A
1 B
1 C
2 X
2 Y
2 Z
我认为这很简单,但我真的很挣扎。任何帮助,将不胜感激。 TIA。下面是我最接近我想要的结果,但它只返回第一个值:
$data = get-content 'C:\temp\file.txt'
Switch -Regex ($Data)
{
'^header(.+)' {$Data = `[PSCustomObject]@{header=$Matches[1];detail=$DefValue}}`
'^detail(.+)' {$Data.detail = $matches[1]}
}
答案 0 :(得分:1)
你其实很亲密......
switch -File .\file.txt -Regex {
'^header(.+)' {
$Data = [PSCustomObject]@{
header = $Matches[1]
detail = $DefValue}
}
'^detail(.+)' {
$Data.detail = $matches[1];
$Data
}
}
的变化:
-file
上的switch
选项代替Get-Content
可能的其他修改:
'^header ([\S]+)'