从文本文件中读取特定文本

时间:2017-01-04 11:12:15

标签: powershell

我写了一个PowerShell脚本来比较两个文本文件。在file1中,数据被组织。但是在file2中,数据没有组织。我通常手动组织数据。但现在数据增加了。我需要使用PowerShell自动组织。

PowerShell必须读取两个特殊字符之间的数据。例如:<****@是我的数据。它必须只读****。这种模式重复'n'次。

1 个答案:

答案 0 :(得分:1)

使用正则表达式<(.*?)@来匹配相关的子字符串。 .*?匹配<与下一次@之间的所有字符(非贪婪/最短匹配)。括号将匹配放在捕获组中,因此可以在以后引用。

Select-String -Path 'C:\path\to\file2.txt' -Pattern '<(.*?)@' -AllMatches |
  Select-Object -Expand Matches |
  ForEach-Object { $_.Groups[1].Value }

$_.Groups[1]指的是匹配中的第一个捕获组。