我很难在Powershell中查找和分离某些正则表达式。我有一个文本文件以下内容的示例,需要在下面的链接中进行搜索。在每个问题下面是响应。
我需要找到每个问题的答案,并将其存储在excel文件中。这些问题在文本文件中的顺序可能不同,因此我需要能够提取对各自问题的正确答案。
我可以通过提取问题
$question1 = $file | Where-Object { $_.Contains("Name") }
$question2 = $file | Where-Object { $_.Contains("Are you feeling ok?") }
$question3 = $file | Where-Object { $_.Contains("Did you do your homework?") }
$question4 = $file | Where-Object { $_.Contains("List your favourite subjects?") }
我很难提取其下的响应(因为问题可能是任意顺序的。将来在文本文件中可能会有更多问题)。
假设您提到的一个文本文件是正确的:
* Name
Jeff
* Are you feeling ok?
Yes
* Did you do your homework?
No
* What are your favourite subjects?
Maths, science
然后,您可以使用Select-String
这样的问题和答案:
Get-Content -Path .\test.txt |
Select-String -Pattern '^\* .*$' -Context 1 |
ForEach-Object {
[PsCustomObject]@{
Question = $_.Line -replace '\* ', ''
Answer = $_.Context.PostContext[0].Trim()
}
}
输出示例:
Question Answer
-------- ------
Name Jeff
Are you feeling ok? Yes
Did you do your homework? No
What are your favourite subjects? Maths, science
问题在文件中的顺序无关紧要,尽管它们会按照找到的顺序出现在输出中。您可以Export-Csv
用来创建一个CSV文件,该文件可以在Excel中打开,也可以联机查看从PowerShell处理XLSX文件的技术。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句