我需要读取每个内容的3个文本文件,然后获取相关字段,最后将这些字段一起输出到新的文本文件中。每个文件的所有字段应输出为一行(无换行符)。
我的问题在于最终输出步骤。
这是获取内容部分:
$raw = Get-Content "C:\folderpath\*.*"
$raw =$raw | Select-String -Pattern "string1", "string2", "string3"
$raw
我得到以下结果(所有文件解析后的字符串一个接一个堆叠):
PS C:\> $raw = Get-Content "C:\ProgramData\CyberTech\Content\audio1\2015-06-02\1\*.*"
PS C:\> $raw =$raw | Select-String -Pattern "Channel=", "StartTime=", "StopTime=", "Duration=", "FileName="
PS C:\> $raw
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
我的问题是:如何输出这些结果,如下例所示(同一行中的3个文件串中的每一个)?
String1 String2 String3
String1 String2 String3
String1 String2 String3
答案 0 :(得分:0)
假设这是您的allocate_ids(count)
输出:
$raw
你想要这个结果:
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
string1=1
string2=8
string3=2015-06-02 23:58:11
你可以这样做:
string1=1 string2=8 string3=2015-06-02 23:58:11
string1=1 string2=8 string3=2015-06-02 23:58:11
string1=1 string2=8 string3=2015-06-02 23:58:11
捕获组应匹配除第一个之外的所有字段名称,因此,如果您的名称与$raw = Get-Content "C:\folderpath\*.*"
$raw = $raw | Select-String -Pattern "string1", "string2", "string3"
($raw | Out-String) -replace "`r`n(string[23])", ' $1'
和string2
不相同,则使用替换字段:
string3