如何读取和解析多个文件?
How to read and parse from multiple files?
我有3个文本文件,我需要读取每个内容,然后抓取相关字段,最后将这些字段一起输出到一个新的文本文件中。每个文件的所有字段应输出为一行(无换行符)。
我的问题是最后的输出步骤。
这是获取内容部分:
$raw = Get-Content "C:\folderpath\*.*"
$raw =$raw | Select-String -Pattern "string1", "string2", "string3"
$raw
我得到以下结果(所有文件解析的字符串一个接一个堆叠):
PS C:\> $raw = Get-Content "C:\ProgramData\CyberTech\Content\audio115-06-02\*.*"
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
假设这是您的 $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])", ' '
捕获组应匹配除第一个字段之外的所有字段名称,因此如果您的名称与 string2
和 string3
不太相似,则应改用替代名称:
($raw | Out-String) -replace "`r`n(string2|string3)", ' '
我有3个文本文件,我需要读取每个内容,然后抓取相关字段,最后将这些字段一起输出到一个新的文本文件中。每个文件的所有字段应输出为一行(无换行符)。
我的问题是最后的输出步骤。
这是获取内容部分:
$raw = Get-Content "C:\folderpath\*.*"
$raw =$raw | Select-String -Pattern "string1", "string2", "string3"
$raw
我得到以下结果(所有文件解析的字符串一个接一个堆叠):
PS C:\> $raw = Get-Content "C:\ProgramData\CyberTech\Content\audio115-06-02\*.*"
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
假设这是您的 $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])", ' '
捕获组应匹配除第一个字段之外的所有字段名称,因此如果您的名称与 string2
和 string3
不太相似,则应改用替代名称:
($raw | Out-String) -replace "`r`n(string2|string3)", ' '